cocos2d-x的CCArray用法

cocos2d-x的CCArray用法,第1张

概述一.基本用法 1.声明初始化变量 C++ 1 2 3 cocos2d :: CCArray * pArray ; pArray = CCArray :: createWithCapacity ( 100 ) ; pArray -> retain ( ) ; //如果保留成员变量的话,此处必须retain,否则会崩溃,因为标记了autorelease 2.添加元素到数组 C++ 1 2 CCSpri

一.基本用法

1.声明初始化变量

C++
1 2 3 cocos2d :: CCArray * pArray ; pArray = CCArray :: createWithCapacity ( 100 ) ; pArray -> retain ( ; //如果保留成员变量的话,此处必须retain,否则会崩溃,因为标记了autorelease

2.添加元素到数组

C++
1 2 CCSprite * pRet = CCSprite :: create ( "test.png" ) ; pArray -> addobject ( pRet ; //将pRet添加到数组0位置,此处会调用一次pRet的retain

3.删除元素

1 2 3 //下面这两个函数都能够实现删除元素的效果 pArray removeObject ( pRet //第二参数为是否调用release,默认为true pArray removeObjectAtIndex 0 //删除o位置上的元素

4.遍历

1).使用ccarray中的宏进行遍历

1 2 3 4 5 6 7 8 9 10 11 12 //所有的路径节点 CCArray * array CCArray createWithCapacity ( 20 ; float dt = 1 / ( m_pProperty -> fMoveSpeed ; CCPoint point ( ; ( UINT i 0 ; i < CGlobal getGameMap m_PathNode size ; ++ i ) { array ( CCMoveto ( dt point ; } //移动完毕的回调 CCCallFunc ( this callfunc_selector CMonster :: onArrive ; CCSequence pAct CCSequence array ;

3.对于一个CCSprite,我们肯定需要把它addChild到parent上,这样他才能显示出来,这样的话parent上就会有好多child,但是我们要遍历只是其中的一部分(例:场景的地图上有好多种花,我们都会把它们添加到同一个parent上,这时候策划说其中的一种花会被怪物踩死?纳尼….,这个时候我们就需要唉将能被踩死的花加入到parent上时同时加入到一个CCArray中去….),这样我们用的时候遍历这个数组就可以了,而不是遍历这个children!

4.多谢@子龙山人 大大的添加,CCArray还可以内存预分配,比如预先生成一堆子d,然后加到CCArray中,再从这个CCArray中去重用子d。这样可以提高游戏效率。消失的子d只需要设置为Invisible就可以了。这个在做射击类游戏中会大量使用的!

5.还有其他用法?发评论告诉我!

(全文完)


转载自http://blog.justbilt.com/25/

总结

以上是内存溢出为你收集整理的cocos2d-x的CCArray用法全部内容,希望文章能够帮你解决cocos2d-x的CCArray用法所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1009702.html

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

发表评论

登录后才能评论

评论列表(0条)

保存