cocos2dx笔记1:概述


1.核心的类和功能

CCDirector gameLoop,实现场景绘制。多个场景之间切换控制。控制游戏的停止,暂停,等生命周期。

CCScene 场景类,每一个场景能够理解为一个游戏镜头。状态

CCLayer 图层,包含图片层,文字层。按扭层。动画层,每一个层有坐标。显示内容,消息回调处理

CCSprite 精灵层,能够实现动画播放

CCAction 动作,控制图层运动。渐变,旋转等


关系例如以下

CCDirector

    游戏运行场景CCScreen

        背景层CCLayer

            精灵CCSprite

        主层

            精灵

        控制层

            精灵


ccnode经常重写的方法:

    draw() 该方法绘制每一个node

    update() 该方法处理每一帧的逻辑变化

    ccTouchesBegan() 处理用户的交互事件


ccp 创建CGPoint对象最经常使用的宏


2.项目入口

didFinishLaunchingWithOptions:

设置RootViewController。并建立EAGLView对象__glView作为主view。__glView在创建过程中会纪录到静态变量中。引擎中通过 EAGLView.sharedEGLView()来获取这个view。全部渲染工作都是在这里实现的!。


CCApplication

CCDirectorCaller  控制消息循环,底层由CADisplayLink实现,终于调用cocos2d::CCDirector::sharedDirector()->mainLoop();完毕渲染。

CCDirector的渲染有这样几步

1.推断是否删除导演,假设是,清除导演,否则2.

2.是否无效,无效进入退出渲染

3.渲染动画

    a.计算时间增量

    b.假设没有暂停,运行导演的update

        现运行updata   后运行客户的schedule

    c.假设须要切换场景,切换场景

    d.调用m_pRunningScene->visit(); 刷新Scene,这是个递归的过程。先绘制zOrder < 0的child,然后drow自己,然后訪问z>0 的

    e.绘制 NotificationNodes 。 用于场景切换时仍能够显示的界面

    除了上边说的,visit前要kmGLPushMatrix(); visit后要kmGLPopMatrix(); 期间还要出发beforDrow和endDrow事件。

4.清除没用的对象,通过pop栈顶的autoreleasepool的方式实现


猜你喜欢

转载自www.cnblogs.com/ldxsuanfa/p/10654290.html
今日推荐