CCMutableArray和CCArray

前端之家收集整理的这篇文章主要介绍了CCMutableArray和CCArray前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

 容器类

之前已经说过了,为了方便从Cocos2D-iPhone移植到Cocos2D-x,Cocos2D-x引擎底层实现了一些Objective-C语言框架中的容器类,包括CCMutableArray、CCArray、CCMutableDictionary和CCDictionary。在Cocos2D-x 2.0版本以后,CCMutableArray和CCMutableDictionary继承STL(Standard Template Library,标准模板库)。相比之下,继承UTHash(哈希表的宏实现)的CCArray和CCDictionary效率更高,并且功能也有所增加,更方便绑定JavaScript脚本。

 CCMutableArray和CCArray

之前已经说过了,Cocos2D-x 2.0以后的版本已经不支持CCMutableArray了,本书讨论CCMutableArray只是为了使读者看到之前的游戏代码时不会疑惑。

可以把CCMutableArray理解成是一个数组的容器,装载的对象只要是CCObject的子类就可以。CCMutableArray的常用函数如表3-18所示。

表3-18 CCMutableArray的常用函数
函 数 名返回类型描  述
CCMutableArray构造函数构造函数参数是长度
count整数数组长度
getIndexOfObject整数获得相应对象的索引
containsObject布尔型是否含有相应对象
getLastObject对象获得最后一个对象
getObjectAtIndex对象根据索引获得对象
addObject空增加对象
addObjectsFromArray空将一个数组添加进来
insertObjectAtIndex空插到某个索引上
removeLastObject空删除最后一个对象
removeObject空删除对象
removeObjectsInArray空删除整个数组的对象
removeObjectAtIndex空删除相应索引的对象
removeAllObjects空删除所有对象
replaceObjectAtIndex空替换相应索引位置的对象
begin迭代器获得开始项迭代器
end迭代器获得结束项迭代器

CCMutable Array定义函数的使用如代码清单3-39所示。

代码清单3-39 CCMutableArray定义函数

CCMutableArray<AstarItem*> open = new CCMutableArray<AstarItem*>();
其中AstarItem为自己定义的类,继承自CCObject,使用时调用相应函数就可以了。

Cocos2D-x 2.0以后的版本,CCArray取代了CCMutableArray。CCArray的常用函数如表3-19所示。

表3-19 CCArray的常用函数
函 数 名返回类型描  述
init布尔型初始化
initWithObject布尔型初始化,参数为对象
initWithObjects布尔型初始化,参数为多个对象
initWithCapacity布尔型初始化,参数为个数
initWithArray布尔型初始化,参数为数组
count整数目前对象个数
capacity整数数组对象
indexOfObject整数获得相应对象的索引
objectAtIndex对象根据索引获得对象
lastObject对象返回最后一个对象
randomObject对象随机返回一个对象
addObject空增加对象
addObjectsFromArray空将一个数组添加进来
insertObjectAtIndex空插到某个索引上
removeLastObject空删除最后一个对象
removeObject空删除对象
removeObjectsInArray空删除整个数组的对象
reverSEObjects空颠倒对象
exchangeObject空交换两个对象,参数为对象
exchangeObjectAtIndex空交换两个对象,参数为索引
fastRemoveObject空快速删除一个确定的对象
fastRemoveObjectAtIndex 空根据索引快速删除一个对象

CCArray定义函数的使用如代码清单3-40所示。

代码清单3-40 CCArray定义函数

CCArray *newArray = new CCArray(m_pControlPoints->count()); 可以发现,它不用确定存储对象的类型,因此每个对象的类型可以不相同,这也是CCArray的一个特点。

原文链接:https://www.f2er.com/cocos2dx/346278.html

猜你在找的Cocos2d-x相关文章