Cocos2d-x开发中遇到的问题汇总

本文总结了Cocos2d-x开发中遇到的一些问题,包括Android系统上的内存访问越界、多线程替代方案、版本移植时的库引用问题、UserDefault使用陷阱、Sequence与Spawn Action的Bug、Android APK启动错误以及Node父节点切换的正确操作。通过实例分析和解决方案,帮助开发者解决这些问题。
摘要由CSDN通过智能技术生成

学习Cocos2d-x有半年时间了,版本从2.1.3到3.0,对于这个引擎的感觉就是跨平台做的好,用起来简单,但是在开发的过程中难免还是遇到一些问题,这里做下汇总:

1、在Android系统上游戏崩溃,错误是由于内存访问越界

      一般出现这种情况主要是由于Cocos2d-x中的对象大部分都是会自动进行内存管理,在Win32平台上可能不会出现什么问题,但是到了Android上面就会出现,要避免这个问题的出现就需要按照一些原则来使用Coco2d-x引擎中的对象

     1、当某个Cocos2d-x的对象是属于类成员对象,那么在创建它的之后需要调用retain函数,以免出现所属类对象还存在,而该作为成员的对象却已经被自动回收了

     2、当在某个函数中创建某个全局的Cocos2d-x引擎的对象时,也需要调用其retain函数,以免在函数退出后,对象被释放,之后对全局对象的访问出现崩溃。

     3、Cocos2d-x框架中的Array类是非常容易被释放掉的,如果使用的Array对象要被作为参数传递,或被多次在不同函数中被使用,那么在创建这类Array对象也要调用它的retian            函数,以免程序崩溃。

2、关于Cocos2d-x多线程的替代方案的思考

    在Cocos2d-x的主线程中调用的很多属于其框架下含有函数retian,autorealease等的调用的对象时是没有问题的,但是这些对象是不是线程安全的,因此就算输可以使用pthread这样跨平台的线程库也很不方便,不过有另外一种方法可以实现类线程的效果,那就是使用schedule函数对需要并行的逻辑进行定时调用,schedule的定时调用时线程安全的,因此可以利用该机制去实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值