• 欢迎来到GeekFaner

    每周更新一篇教程,轻松学习cocos2d-x

    联系我们
  • 又是一个美好的一天

    每天的太阳都是新的,今天要比昨天好

    联系我们
  • 出发!

    开始今天的课程学习,让我们的明天更美好

    联系我们

课程概述

“Cocos2d-X的渲染系统(5)”课程概述

游戏最重视的是性能,解决性能问题的一个比较有效的办法就是实现并发、多线程。本节课将从介绍Cocos2d-X如何实现多线程。

教学视频

课程笔记

多线程

在游戏开发的过程中,开发者基本不会使用多线程开发。虽然这种方法理论上也可以实现,但是从易用性出发,Cocos2d-X并没有暴漏给开发者这样的接口,也并不建议开发者去这样制作游戏。

但是在Cocos2d-X底层是使用了部分并行化。虽然Cocos2d-X游戏引擎并没有向其他游戏引擎将绘制从游戏引擎中分离,但是cocos2d-X在网络请求、异步加载数据上也使用到了多线程。但是GL方法、内存处理,一般应该是在主线程完成。

Scheduler提供了performFunctionInCocosThread函数,这个函数的目的:当其他元素调用这个函数的时候,可以将一个回调函数,存入Scheduler的一个函数vector中,这个vector中存储的函数,将会在主线程中被调用。

在(Cocos2d-X的渲染系统(4))一节中,我们讲到了很多Scheduler的函数,其中有一个函数是在drawScene的时候会被调用,Scheduler的update的函数,用于在每一帧遍历UI树之前对UI元素进行更新,而在这个函数中,会遍历刚才存储的包含很多回调函数的vector,然后依次执行这些函数。

上面这种机制是在每一帧将存储在Scheduler回调函数vector中的函数进行处理,但是假如这些回调函数有很多,且需要耗费很多时间,比如上传很多texture,那么使用这种方法会导致很差的用户体验。那么还有一种方式,就是创建一个自定义的Schedule,每帧处理一个纹理,直到纹理全部上传结束。

联系我们

笔者制作网站的目的,主要是借用自己之前的知识背景(Android App开发和图形学知识),将自己学习笔记拿出来,和大家一起进行交流,毕竟每个人的知识体系不同,有交流才会有提高,所以欢迎大家通过各种方式和我联系。
网址:www.geekfaner.com
youku教学视频:http://i.youku.com/geekfaner
“百度传课”教学视频(高清版_推荐):http://www.chuanke.com/s2588605.html

wangshuo@geekfaner.com