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的方式实现


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值