cocos2dx 3.3 TMX系列简单分析

cocos2dx 3.3 TMX系列简单分析,第1张

概述位置:coco2d/2d/CCTMX 关于TiledMap 一般使用Tile工具来制作地图 生成tmx文件,map包含多个layer、object,layer内包含tile,tile存储为gid tmx文件其实最终也是xml形式的 从CCTMXXMLParser入手 TMXLayerInfo 层信息,包含各种附加属性值,以及基本属性,比如name、size、offset、visible等 TMXT 位置:coco2d/2d/CCTMX


关于TiledMap 一般使用Tile工具来制作地图
生成tmx文件,map包含多个layer、object,layer内包含tile,tile存储为gID
tmx文件其实最终也是xml形式的


从CCTMXXMLParser入手 TMXLayerInfo 层信息,包含各种附加属性值,以及基本属性,比如name、size、offset、visible等
TMXTilesetInfo 瓦片集的各种信息,可以认为是丢进tile里的那张png对应的各种信息,包括tileSize、sourceImage等


TMXMAPInfo 实际解析类,包含地图的全部信息
从tmx或xml读取相关信息,并解析成地图
入口都是create系列,然后进入internalinit初始化一些信息,然后开始解析parseXMLfile
tmx其实也是xml形式的,所以统一解析xml,设置SAXDelegator,进入SAXParser内解析
内部利用tinyxml2解析xml文件,获取各种数据,遍历文件,然后通过SAXDelegator回到TMXMAPInfo内对应的处理函数startElement endElement textHandler
map 地图
tileset tile图相关信息
layer 地图内的层相关信息,也是实际地图信息,内部data为base64加密并zip压缩,在end里解析data,先解密base64,然后解压,存入TMXLayerInfo内
objectgroup 对象层相关信息
其他还有各种属性、几何图形信息等,可对应相关代码及tmx文件查看


文件读取解析完成了,下一个


实际呈现部分 CCTMXTiledMap 负责将数据图像化 class TMXLayerInfo; class TMXTilesetInfo; class TMXMAPInfo; 上面这几个前面都有了,就是保存各种信息的 class TMXLayer; 这个layer继承自SpriteBatchNode,关于SpriteBatchNode相关的信息就不多说了,基本就是,这样绘制效率会高很多 TMXLayer依然从create入手,进入initWithTilesetInfo,先添加image到TextureCache,然后SpriteBatchNode,然后设置各种layer信息,再之后就暂时断了 回到TMXTiledMap,继续从create入手,先TMXMAPInfo解析,然后进入builDWithMAPInfo,获取各种mAPInfo,然后对各个层做处理parseLayer,然后add节点 parseLayer内创建TMXLayer,然后走setupTiles,里面先开启了抗锯齿,然后appendTileForGID依次添加tile,每一块tile都是一个sprite 总结

以上是内存溢出为你收集整理的cocos2dx 3.3 TMX系列简单分析全部内容,希望文章能够帮你解决cocos2dx 3.3 TMX系列简单分析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1083820.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存