cocos2d-x入门三 分层设计框架
2024-10-21 05:07:22
helloworld就是一个完整的框架,大致分为四个层次如下:
导演-------场景------图层-----精灵
Director-----Scene----Layer----Sprite
- 导演类负责的是全局工作,关键代码主要由系统自动生成。在类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中场景是以栈的形式存储 - 场景类一般比较简单,一个导演类可对应多个场景。其实现主要在HelloWorldScene.cpp中,常见的只有初始化,auto scene = Scene::create();,其中不管哪个类的create函数,都会new一个对象,而系统会自动通过语句 ret->autorelease();把它加入到自动释放列表中。
- 图层类,实现主要在HelloWorldScene.cpp中,初始化auto layer = HelloWorld::create();通过scene->addChild(layer);把场景与图层关联起来,一个场景可有多个图层。
- 精灵类,图层的具体内容又由精灵填充,实现主要在HelloWorldScene.cpp中的bool HelloWorld::init()中,初始化auto sprite = Sprite::create("HelloWorld.png"); 精灵与其它组件都在这个函数中初始化,并设置相应的坐标,最后通过 this->addChild(sprite, 0);语句加到图层上,第二个参数表示在图层中的前后位置,0是背景。
最新文章
- JAVA通信系列三:Netty入门总结
- Mybatis generator的使用
- 如果用css的border属性画一个三角形
- java并发编程学习笔记(一)初识并发原子性
- Cygwin使用方法
- ural 2070. Interesting Numbers
- 关于sphinx+PHP在高并发时响应性能低下的解决办法
- 最简单的基于FFMPEG的音频编码器(PCM编码为AAC)
- 14.4.4 Redo Log Buffer
- 解决iOS中tabBarItem图片默认颜色的问题(指定代码渲染模式为以原样模式的方式显示出来)
- rsync、ssh备份
- 解决 Visual Studio 点击添加引用无反应的问题
- elk认证模块x-pack安装
- 【通信】JDK中的URLConnection参数详解
- 20180426 Linq to excel
- C#连接操作MySQL数据库详细步骤 帮助类等(二次改进版)
- java7(3)——增强的catch之自动释放资源
- 使用bison和yacc制作脚本语言(1)
- hdu1162(最小生成树 prim or kruscal模板)
- 'xxx' declared `static' but never defined
热门文章
- 【c++】【常用函数】
- ubuntu安装mysql步骤
- 【Unity Shader编程】之十六 基于MatCap实现适于移动平台的“次时代”车漆Shader
- (3.15)常用知识-sql server分页
- python学习笔记(十五)异常处理
- 使用DAO工厂创建实现类对象
- mac shell
- Mysql Having的用法:对group by之后的分组加限制条件(复制)
- 跨域问题-nginx代理
- The 15th UESTC Programming Contest Preliminary J - Jermutat1on cdoj1567