本地消息中删除自身界面出错的问题和cocos2dx使用多线程的注意事项

1.之前遇到一个问题忘了记录,就是通过本地消息删除监听该消息的界面会出错,因为该界面销毁时会移除监听,这个问题看上去就有悖论,接收到消息的时候要做操作又要移除监听,所以用个runaction下一帧操作就行了。
2.第二个问题 从其他APP调用游戏生成精灵或loadtexture会报错,原因是因为线程同步问题。有个大神的博客中描述得很清楚: Cocos2d-x所使用的内存管理机制以及OpenGL的接口函数都不是线程安全的,所以,不要试图在一个除主线程之外的其它线程内调用引擎所提供的内存管理的方法,例如在一个新线程中去创建一个精灵或是层之类的元素,这些元素在create()方法中均会调用autorelease,autorelease以及retain、release都不是线程安全的,OpenGL的上下文也不是线程安全的,所以也不要在新线程中去使用OpenGL的绘制功能。所以通过performFunctionInCocosThread转换到cocos线程去或者在下一帧执行就能解决(update是cocos的线程)

猜你喜欢

转载自blog.csdn.net/x2345com/article/details/53844321