欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > 内容正文

cocos2d-x入门介绍

来源: 开发者 投稿于  被查看 43594 次 评论:25

cocos2d-x入门介绍


 

CCPoolManager是单体类,负责管理多个垃圾回收对象。其中CCArray *m_pReleasePoolStack 可以管理多个垃圾回收器。CCPoolManager 通过用 getCurReleasepool获取当前的垃圾回收器 m_pCurReleasePool,如果m_pCurReleasePool == NULL,就调用push创建一个新的垃圾回收器,并且还要加入刚才的那个m_pReleasePoolStack里面。而Pop方法会清理掉当前的这个垃圾回收器 m_pCurReleasePool,然后把刚才那个栈pop出来一个新的设置给当前这个垃圾回收器使用。

 

CCAutoreleasePool自动的垃圾回收器,通过一个动态数组autorelease管理加入的CCObject对象。

 

CCApplication是Cocos2d-x的应用主类,应用程序都要继承这个CCApplication,在main函数里需要定义一个CCApplication的对象并且执行它的run方法。

 

CCDirector导演类,主要做场景的管理和调度,通过创建CCActionManagement对象管理器,触摸消息分配器,键盘消息分配器,加速器等等一系列的方法来初始化,哦哦,还有刚才说过的那个CCPoolManager也要,用来创建一个垃圾回收器。

最重要的方法还是mainLoop方法,这个方法跟openGL,glut库里的mainLoop很像,步骤都是渲染场景,释放清理当前的垃圾回收器,不过这里是通过CCPoolManager来实现,而opengl就通过glClear来实现。

 

CCNode类,里面最重要的成员方法:

创建和释放: onEnter(),onExit()

增加和删除子对象:addchild(), removeChild()

返回所占矩形空间:bounddingBox(void);

运行相关动作:runAction(),runAllAction(),stopAction()等等。

还有比较重要的渲染填充物的:draw(),visit(),transform()

而且对CCNote这个对象的自定义画图一定要在draw方法内实现,因为引擎在这个函数调用的上下文进行了绘图环境的状态设置。

 

调度机制:通过注册scheduler方法加入,或者,通过CCNote::scheduleUpdate方法

第一种:其实最终还是调用调度器单体来实现的,而这个单体是在CCDirector初始化中生成的,在CCNote的构造函数中设置供CCNote使用。

调度单体的注册调度主要是创建一个定时器CCTimer对象并且将改CCNote对象和scheduler处理函数一起加入到该定时器对象中,以便后面调度使用。

 

垃圾回收机制:类似于java的垃圾回收机制,本质上就是让基类CCObject具有引用计数机制。

初始化CCObject的时候将引用计数设置为1,然后如果retain就加一,release就减一。

而且刚才说到了mainLoop的主要的工作是渲染场景,通过CCPoolManager释放和清理当前垃圾(看上面的运行机制)

 

 

相关频道:

用户评论