cocos2dx中使用多线程(转)

来源:互联网 发布:淘宝大学披肩老师 编辑:程序博客网 时间:2024/05/17 06:41

推荐使用pthreadcc,已经封装好了方法,很方便使用,并且不用担心线程的并发与死锁问题,之前开发android的时候

熟悉了一个类叫AsyncTask,今天自己也封装一个类似的类用来用项目开发的人调用。思路是:

传进去一个url或者pMsg,开启一个线程来执行网络请求,当获取到结果以后,通知主线程更新、


线程的使用很顺利,但是在线程与2dx相结合的时候,发现OpenGL渲染线程只允许在主线程中渲染,突然想到Android中

也是一样,刚开始的时候,跟本不显示2dx绘图中的任何图片。


后来,把线程与CCLayer封装,有效果了,但是OpengGL渲染受到了影响,渲染的图片每次都是一个黑色的框,没有

色彩,很郁闷。


借助自己对OpengGL的一些了解,以及手游戏 开发的一些经验,突然想到先2dx先渲染,然后再执行线程,修改完代码

执行,已经完好。


Tip:OpenGL与线程相结合时,此时你需要把你需要渲染的精灵先加载到内存中去,可以设置成为不显示,然后在线程执行后

再设置精灵成显示状态,这样可以解决线程与OpneGL渲染不兼容的问题


效果图:

执行前,弹出对话框提示加载,此时已经进入异步加载状态

转自:http://www.2cto.com/kf/201312/266938.html

原创粉丝点击