关于Cocos2d-x中使用自定义地图等对象的缩放与拖动的实现
2017-02-28 18:20
1086 查看
近日在做数据结构课程设计,题目是公交线路上优化路径的查询。图形方面需要实现可视化的地图,同时最好能够实现缩放与拖动。经过一番折腾后大致实现了此功能,方法并不困难,在此提供一下方法,给没有好想法或在高端技术实现上遇到困难的童鞋们一点思维的启迪。
首先,我们需要一个大的Layer,这个Layer用来绘制所有的地图元素信息,包括公交线路、站点图标、导航、背景图等等;
接着,我们要在这个大的Layer中使用addChild方法添加几个小的Layer,用来专门绘制不同的元素(主要目的是方便管理);
当然,Cocos2d-x中提供了DrawNode类,我们也可以添加多个DrawNode对象分别绘制不同元素而不是添加多个Layer,具体实现岁自己喜欢;
当实现了大Layer中各种绘图后,我们需要把这个大的Layer实例化对象后,放入Scene中的一个ScrollView(ui/UIScrollView.h)中即可,当然ScrollView要设置裁剪、垂直水平滑动及回弹效果(也是随自己喜欢),记得使用ScrollView的setInnerContainerSize(layer->getContentSize());确保ScrollView组建能够通过滑动查看到layer的每个角落(在缩放后也要记得调用此方法实时更新容器大小哦)。
到这一步其实我们已经可以达到地图的拖动效果了,接下来实现地图的缩放。博主折腾了一下午的手势缩放发现传递不能......可能是自己项目设计的锅(项目:这锅我不背),采用了Slider滑动条实现了地图缩放。当要实现地图缩放时,只需要在layer来看的父节点(或者只要不在layer内部调用即可?)内调用layer->setScale(6.66f);即可,此时layer内部多个层上的元素都会跟随layer的缩放而缩放。
至此,我们的自定义地图就完全实现了缩放与拖动。
转载请注明原地址。
首先,我们需要一个大的Layer,这个Layer用来绘制所有的地图元素信息,包括公交线路、站点图标、导航、背景图等等;
接着,我们要在这个大的Layer中使用addChild方法添加几个小的Layer,用来专门绘制不同的元素(主要目的是方便管理);
当然,Cocos2d-x中提供了DrawNode类,我们也可以添加多个DrawNode对象分别绘制不同元素而不是添加多个Layer,具体实现岁自己喜欢;
当实现了大Layer中各种绘图后,我们需要把这个大的Layer实例化对象后,放入Scene中的一个ScrollView(ui/UIScrollView.h)中即可,当然ScrollView要设置裁剪、垂直水平滑动及回弹效果(也是随自己喜欢),记得使用ScrollView的setInnerContainerSize(layer->getContentSize());确保ScrollView组建能够通过滑动查看到layer的每个角落(在缩放后也要记得调用此方法实时更新容器大小哦)。
到这一步其实我们已经可以达到地图的拖动效果了,接下来实现地图的缩放。博主折腾了一下午的手势缩放发现传递不能......可能是自己项目设计的锅(项目:这锅我不背),采用了Slider滑动条实现了地图缩放。当要实现地图缩放时,只需要在layer来看的父节点(或者只要不在layer内部调用即可?)内调用layer->setScale(6.66f);即可,此时layer内部多个层上的元素都会跟随layer的缩放而缩放。
至此,我们的自定义地图就完全实现了缩放与拖动。
转载请注明原地址。
相关文章推荐
- 基于Cocos2d-x的实现tilemap地图双指缩放,单指拖动
- 关于:“无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。”的问题
- 使用axis1.4实现webservice,包含自定义对象、附件传输
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- 使用百度地图接口实现自定义网页地图开发实现
- Flex之使用DragManager实现对象拖动
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- 对于集合中的自定义对象使用collections.sort 进行排序,需要实现compartor接口
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- 转载,关于在Javascript里自定义对象以及使用案例。
- 在asp.net2.0中使用串行化对象实现自定义配置
- 利用自定义的Event或者使用Action实现对象之间的通信
- 往TreeSet中存入自定义对象,并且使用自定义排序方法(实现comparetor)
- .NET 插件系统框架设计(二) 使用对象序列化实现自定义配置文件管理
- cocos2d-x 地图的单指拖动和双指放大和缩小 的简单实现