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


  • 相关阅读:
    linux上的常用的进程与内存优化命令
    ubuntu 上运行的django 出现No space left on device错误
    openstack 使用pbr配置,setup.cfg的格式与含义
    openstack中安装包与组件
    对drf序列化器的理解
    对商品数据表的理解
    首页广告数据表的理解
    对省市区地址的理解
    对邮箱验证的理解
    用户中心个人信息实现的理解
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10654290.html
  • Copyright © 2020-2023  润新知