首页 > 代码库 > Cocos2d-X 3.x数据结构与2.x数据结构大致比较
Cocos2d-X 3.x数据结构与2.x数据结构大致比较
Cocos2d-X 3.x数据结构与2.x数据结构大致比较
在3.x里做2d横板过关游戏时,需要用到这些东西,网上大多数都是些2.x版本的教程,
一些东西已经可能大不相同了.
PointArray -> CCPointArray
翻开源码他是一个std::Vector<Vec2*>的类,他是为了记录一些点向量的集合
PointArray::create(ssize_t capacity); //表示长度
CC_SAFE_RETAIN 用到的时候让计数器安全-1
TMXTiledMap->CCTMXTiledMap
3.x 和 2.x的不同
3.x 拥有一个ValueMap的地图数组 和Vector<TMXObjectGroup*>地图元素集合
2.x 拥有一个 CCDictionary的地图数组和一个CCArray的地图元素集合
TMXObjectGroup->CCTMXObjectGroup
3.x:TMXObjectGroup::getObjects返回ValueVector
2.x:TMXObjectGroup::getObjects返回CCArray
Value VS CCArray & CCDictionary
Value各种类是vector+map再一次封装:
ValueVector->其实就是一个 CCArray里包含着CCDictionary里面是键值对
ValueMap->CCDictionary里面包含一个字符串和一个对象
ValueIntKey->整形和对象的map
Value是一个联合体:
int float double bool string char ValueVector ValueMap Value ValueIntKey
并且Value重载了好多运算符,使用很方便
各种坑爹的宏让他们去死吧
2.x: CCARRAY_FOREACH(CCArray* arr,CCObject* ref);
3.x: for(auto ref : CCArray* arr )
2.x: CCDICT_FOREACH(CCDictionary * dic,CCDicElement* ele )
3.x: for(auto ele : ValueVector)
这样做唯一的不足是auto自动推导类型可能不会有具体方法,
如果有需要像键值对的就很恶心,比如需要获取键和值
pElement.first.c_str()这样获取元素第一个参数的键
pElement.second….获取元素第二个参数值
虽然3.x的方法可能让人有时抓狂,不过习惯了反而觉着3.x确实比2.x安全高效
Cocos2d-X 3.x数据结构与2.x数据结构大致比较
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。