1.关于cocos2d-x中的内存管理机制,有很多关于这方面的资料,本不想提起,但笔者这段时间练的一个消灭星星的游戏实现却遇到了相关的问题,简单介绍一下。用于管理点击遍历搜索后的星星对象的vector在取出对象后遇到了问题,取出的行列值出现了混乱,百思不得其解,后来发现这时候取出的sprite对象其实已经被销毁了,所以在加入vector时retain后解决了问题,但其实问题却不在于此。
2.具体原因其实也很简单,消灭星星对象时必须先清空表示星星数组中的标志位,然后才能removechild,否则自然找不到对象了,直接上代码。很明显是相当不合理,只要把第一句放到最后就好了。现在看来确实简单,不过当时查错的过程还是很麻烦的,一直没有注意到这一点。当然了体会自己发现问题,解决问题的过程是很享受的,特别是最后解决后的成就感。扯远了,总之一点点的进步,就能慢慢养成好的习惯,
3.还有一点,cocos2d-x中Vector也封装了对于对象的 retain 操作和 release 操作,因此对对象的生命周期有了很大影响,这也是大多数人所忽略的的地方,可以在源码中找到解释。