小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man
在写cocos2d-x游戏示例的时候,如果发现一些在初探笔记中的遗漏之处,我会随时补充上来,今天补充的就是cocos2d-x中带有的vector----CCMutableArray,我很推荐在cocos2d-x引擎中不使用vector,而是直接使用CCMutableArray,因为它的内存管理方式和cocos2d-x很接近,更方便我们使用,剩下的部分,它也是支持template的,和vector一样。我们首先来看一下创建方法
CCMutableArray<AstarItem*>* path = new CCMutableArray<AstarItem*>();
我们可以使用自己创建的类作为template,这里是我准备写游戏示例的A星算法中准备用到的部分,我使用了自己的template-----AstarItem(我会在游戏示例中解释这个例子)
以下是这个类常用的一些方法:
~~~
path->addObject(temp1);//添加一个对象,添加到最尾部
path->containsObject(temp);//数组中是否包含这个元素
path->copy();//复制这个数组
path->count();//数组中的元素个数
path->getIndexOfObject(temp1);//获得数组的索引
path->getLastObject();//获得最后一个对象
path->getObjectAtIndex(i);//根据索引获得相应的对象
path->insertObjectAtIndex(close->getObjectAtIndex((path->getObjectAtIndex(0))->getfid()),0);//在索引位置插入一个元素
~~~
CCMutableArray也可以使用Iterator,例子如下。
![](https://box.kancloud.cn/2016-04-26_571f3f148e552.gif)
同样的cocos2d-x还提供了一个数组的使用就是CCArray,其使用方法和Array类似,初始化方法如下
CCArray* sprites = CCArray::arrayWithCapacity(totalToAdd);
当然还有其他的使用方法,这里就不再赘述了。
这里在解释一下CCMutableDictionary,他是一个键值对,这个类型在地图中获得属性的时候比较常用,这样我们就可以获得相应的键值对,第一个类型是我们可以自定义的,我们这里定义为string类型的,而另外一种类型就必须是CCString *类型的,当然,这个类型被获得后我们可以转换为各种类型。
![](https://box.kancloud.cn/2016-04-26_571f3f149fd35.gif)
如有错误之处,希望大家多多指正
- 前言
- (1)--HelloWorld
- (2)--重要概念及Test例子结构
- (3)--动作(CCAction)
- (4)--触屏事件
- (5)--动作管理
- (6)--场景间切换效果
- (7)--CCProgressTimer
- (8)--场景特效
- (9)--粒子系统
- (10)--运动中的加速度效果
- (11)--拖动间隐效果
- (12)--图形绘制
- (13)--内存回收机制
- (14)--菜单项
- (15)--CCOrbitCamera
- (16)--LayerColor
- (17)--瓦片地图集
- (18)--Lable
- (19)--物理引擎box2d(1)
- (20)--物理引擎box2d(2)
- (21)--精灵类
- (22)--动画类
- (23)--其他(屏幕旋转,schedule,系统语言)
- (24)--音乐音效
- (25)--CCRenderTexture
- (26)--其他(游戏存档,切换高清,图片处理)
- (27)--CCMutableArray
- (28)--CCTMXTiledMap
- (29)-cocosBuilder
- (30)2.1新特性之CCClippingNode
- (31)2.1新特性CCPhysicsSprite
- (32)-cocos2d-x &amp; javascript跨平台初体验