cocos2dx 3.3 TMX系列简单分析
发布时间:2020-12-14 17:21:43 所属栏目:百科 来源:网络整理
导读:位置:coco2d/2d/CCTMX 关于TiledMap 一般使用Tile工具来制作地图 生成tmx文件,map包含多个layer、object,layer内包含tile,tile存储为gid tmx文件其实最终也是xml形式的 从CCTMXXMLParser入手 TMXLayerInfo 层信息,包含各种附加属性值,以及基本属性,比
位置: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(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读