cocos2d-x 2D砖块地图实现技术之三
来源:互联网 发布:烂泥情人知乎 编辑:程序博客网 时间:2024/05/01 09:27
6.6.2 地图图层类CCTMXLayer
在Tile Map Editor当中,存在两种图层。一个为砖块拼接的图层,另一个是物体层。经过前面的介绍,我们也得知在Cocos2D-X引擎当中同样提供了两个独立的类来对应这两种层次。下面就来看看这两个类都提供给了开发者哪些公共成员函数。
1. //返回图层尺寸的大小
2. virtual const CCSize & getLayerSize (void)
3.
4. //设置图层尺寸的大小
5. virtual void setLayerSize (const CCSize &var)
6.
7. //返回砖块尺寸的大小
8. virtual const CCSize & getMapTileSize (void)
9.
10. //设置砖块尺寸的大小
11. virtual void setMapTileSize (const CCSize &var)
12.
13. //返回砖块属性信息
14. virtual CCTMXTilesetInfo * getTileSet (void)
15.
16. //设置砖块属性信息
17. virtual void setTileSet (CCTMXTilesetInfo *var)
18.
19. //返回图层属性字典(包含了所有属性)
20. virtual CCDictionary * getProperties (void)
21.
22. //设置图层属性
23. virtual void setProperties (CCDictionary *var)
24.
25. //构造函数
26. CCTMXLayer ()
27.
28. //析构函数
29. virtual ~CCTMXLayer ()
30.
31. //初始化函数,参数为:砖块配置对象,图形配置对象,地图配置对象
32. bool initWithTilesetInfo (CCTMXTilesetInfo *tilesetInfo, CCTMXLayerInfo *layerInfo, CCTMXMapInfo *mapInfo)
33.
34. //释放图层中砖块的拼接信息
35. void releaseMap ()
36.
37. //返回指定位置的砖块对象
38. CCSprite * tileAt (const CCPoint &tileCoordinate)
39.
40. //返回指定位置砖块对象的ID
41. unsigned int tileGIDAt (const CCPoint &tileCoordinate)
42.
43. //返回指定位置砖块对象的ID
44. unsigned int tileGIDAt (const CCPoint &tileCoordinate, ccTMXTileFlags *flags)
45.
46. //设置指定位置砖块对象的ID
47. void setTileGID (unsigned int gid, const CCPoint &tileCoordinate)
48.
49.
50. //设置指定位置砖块对象的ID
51. void setTileGID (unsigned int gid, const CCPoint &tileCoordinate, ccTMXTileFlags flags)
52.
53. //移除指定位置砖块对象
54. void removeTileAt (const CCPoint &tileCoordinate)
55.
56. //返回指定坐标的地图位置
57. CCPoint positionAt (const CCPoint &tileCoordinate)
58.
59. //返回指定属性数值
60. CCString * propertyNamed (const char *propertyName)
61.
62. //创建图层中的砖块
63. void setupTiles ()
64.
65. //得到图层的名字
66. const char * getLayerName ()
67.
68. //设置图层的名字
69. void setLayerName (const char *layerName)
上述代码6-4列出了类CCTMXLayer的所有公共成员方法。其中有几个是读者将来会经常用到的。它们都是与拼接图层的数据有关的函数。因为图层对象是在创建地图对象时由引擎自动创建的,所以读者在上述代码中并没有看到类CCTMXLayer的创建函数。只有释放函数releaseMap,它是用来释放当前图层资源的。只有当此图层不再进行修改时,才可以调用这个方法。否则,在其被释放之后再进行修改,就无从下手了。函数tileAt将会返回一个砖块对象,具体的图块对象是通过参数中传递的位置来确定的。返回的砖块对象是在调用此方法时新生成的。
这是读者需要留意的地方。在开始创建图层时并不会为每个砖块都生成一个精灵对象,只有当开发者调用此方法来获得砖块对象时,才会创建。如此设计的原因无非就是为了减少内存的创建,节省运行空间。其他的函数就不逐一介绍了。它们都很简单,读者通过注释就可以明白。
- cocos2d-x 2D砖块地图实现技术之三
- cocos2d-x 2D砖块地图实现技术之二
- cocos2d-x 2D砖块地图实现技术之四
- cocos2d-x 2D砖块地图实现技术之一
- cocos2d-x - 2d跑酷游戏地图素材(TiledMap)
- cocos2d-x学习之box2d物理引擎打砖块
- cocos2d实现2D地图A*广度路径算法
- Cocos2d-x 地图行走的实现2:SPFA算法
- Cocos2d-x 地图行走的实现2:SPFA算法
- Cocos2d-x 地图行走的实现2:SPFA算法
- 源码分析使用Cocos2d-x实现2D光线效果
- 【Cocos2d-x】水面效果的2D实现(一)
- 【Cocos2d-x】地图滚动算法的实现
- cocos2d-x大型地图的实现
- cocos2d-x大型地图实现(续)
- Cocos2d-x之 地图物体层CCTMXObjectGroup
- 【Cocos2d-x】源码分析之 2d/ui/Widget
- 【Cocos2d-x】源码分析之 2d/ui/UILayoutDefine.h
- 解决HttpURLConnection setConnectTimeout超时无响应的问题
- #与##在宏定义中的--宏展开
- logback.xml常用配置详解(三章)
- PATH变量内容的删除、替换
- MySpace创始人:硅谷创业公司估值过高,Facebook是个坏榜样
- cocos2d-x 2D砖块地图实现技术之三
- cocos2d-x 获取系统毫秒数
- uva 573 - The Snail
- 刷新页面使页面保持在当前位置显示而不跳回顶部
- action被重复执行
- 使用SQL*Loader将CSV文件数据导入ORACLE数据表
- FileLib.PRG -- VFP 文件基础函数库
- 将Android的示例(samples)导入模拟器并运行
- java中的对象等价性讨论