cocos2d-x入门介绍

基于opengl开发的

主要概念包括:应用,导演,场景,曾,精灵,动画,动作。

层次关系:导演 -》 多个场景 -》一个层(相互引导) -》 多个精灵。


主要类:(看过怎么定义的)

CCObject是主要基类,负责引用计数 。


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释放和清理当前垃圾(看上面的运行机制)



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值