helloworld就是一个完整的框架,大致分为四个层次如下:

导演-------场景------图层-----精灵

Director-----Scene----Layer----Sprite

  1. 导演类负责的是全局工作,关键代码主要由系统自动生成。在类AppDelegate中,它主要由三个函数组成,

    bool AppDelegate::applicationDidFinishLaunching() 入口函数
    void AppDelegate::applicationDidEnterBackground() 当前游戏由运行态转入后台运行
    void AppDelegate::applicationWillEnterForeground() 游戏由后台转到前台

    导演类常见的接口有,

    auto director = Director::getInstance(); 初始化,获得导演实例

    auto glview = director->getOpenGLView();

    director->setOpenGLView(glview);

    关联OPENGL

    director->setDisplayStats(true);

    director->setAnimationInterval(1.0 / 60);

    设置FPS,正常值的范围[30,60]

    director->runWithScene(scene);

    director->replaceWithScene(scene);

    设置当前运行的场景

    设置当场景变化时,要显示的新场景

    Director::getInstance()->stopAnimation();

    Director::getInstance()->startAnimation();

    当有其它任务过来时,要暂停游戏

    返回游戏时,重新开始

    pop push 2.0中场景是以栈的形式存储
  2. 场景类一般比较简单,一个导演类可对应多个场景。其实现主要在HelloWorldScene.cpp中,常见的只有初始化,auto scene = Scene::create();,其中不管哪个类的create函数,都会new一个对象,而系统会自动通过语句 ret->autorelease();把它加入到自动释放列表中。
  3. 图层类,实现主要在HelloWorldScene.cpp中,初始化auto layer = HelloWorld::create();通过scene->addChild(layer);把场景与图层关联起来,一个场景可有多个图层。
  4. 精灵类,图层的具体内容又由精灵填充,实现主要在HelloWorldScene.cpp中的bool HelloWorld::init()中,初始化auto sprite = Sprite::create("HelloWorld.png"); 精灵与其它组件都在这个函数中初始化,并设置相应的坐标,最后通过 this->addChild(sprite, 0);语句加到图层上,第二个参数表示在图层中的前后位置,0是背景。

最新文章

  1. JAVA通信系列三:Netty入门总结
  2. Mybatis generator的使用
  3. 如果用css的border属性画一个三角形
  4. java并发编程学习笔记(一)初识并发原子性
  5. Cygwin使用方法
  6. ural 2070. Interesting Numbers
  7. 关于sphinx+PHP在高并发时响应性能低下的解决办法
  8. 最简单的基于FFMPEG的音频编码器(PCM编码为AAC)
  9. 14.4.4 Redo Log Buffer
  10. 解决iOS中tabBarItem图片默认颜色的问题(指定代码渲染模式为以原样模式的方式显示出来)
  11. rsync、ssh备份
  12. 解决 Visual Studio 点击添加引用无反应的问题
  13. elk认证模块x-pack安装
  14. 【通信】JDK中的URLConnection参数详解
  15. 20180426 Linq to excel
  16. C#连接操作MySQL数据库详细步骤 帮助类等(二次改进版)
  17. java7(3)——增强的catch之自动释放资源
  18. 使用bison和yacc制作脚本语言(1)
  19. hdu1162(最小生成树 prim or kruscal模板)
  20. 'xxx' declared `static' but never defined

热门文章

  1. 【c++】【常用函数】
  2. ubuntu安装mysql步骤
  3. 【Unity Shader编程】之十六 基于MatCap实现适于移动平台的“次时代”车漆Shader
  4. (3.15)常用知识-sql server分页
  5. python学习笔记(十五)异常处理
  6. 使用DAO工厂创建实现类对象
  7. mac shell
  8. Mysql Having的用法:对group by之后的分组加限制条件(复制)
  9. 跨域问题-nginx代理
  10. The 15th UESTC Programming Contest Preliminary J - Jermutat1on cdoj1567