Cocos2dx 游戏的主导者导演类-Director
2016-09-12 15:19
302 查看
在Cocos2dx的基本组成篇里,我简单地介绍了导演的基本概念和含义作用。但他实际要做些什么呢?
在本篇文章里将介绍一下承担着导演作用的导演类Director。
导演类Director 继承自 ref类 才用单例设计模式(即这个类智能拥有一个实例)。
主要功能如下
1、负责场景之间的切换。
2、对视图的访问和OpenGLES接口的封装。
3、游戏的基本控制如暂停游戏、终止游戏等。
4、储存管理游戏中的全局配置信息。
常用方法
static Director * getInstance() 获取导演类实例,范围导演类指针(Director *)。
Scene * getRunningScene() 获取当前正在运行的场景,返回场景类指针(Scene*)。
double getAnimationInterval() 获取当年FPS(帧数)的导数,将其范围。
virtual void setAnimationInterval(double interval) 设置FPS,参数是FPS标准值的倒数,即刷一帧需要的时间。
bool isDisplayStats() 获取是否显示运行状态。
void setDisplayStats(bool displaysStats) 与上相反的设置函数。
float getSecondsPerFrame() 获取每秒的帧数,将其返回。
GLView* getOpenGLView() 获取OpenGLView(渲染引擎类)实例,并返回指针。
void setOpenGLView(GLView * openGLView) 与上相反。
TextureCache* getTextrueCache() 获取纹理缓冲,并返回指针。
bool isPaused() 获取当前场景是否暂停
Size getVisibleSize() 获取可见区域大小
Point getVisibleOrigin() 获取区域坐标原点
void runWithScene(Scene * scene)运行一个指定场景。
void replaceScene(Scene * scene)当前场景替换为指定场景,当前场景将被释放。
void end() 释放运行中场景。
void pause() 调用applicationDidEnterBackground()暂停运行中场景播放的动画。
void resume() 调用applicationWillEnterForeground()播放运行中场景播放的动画。
这两个函数都可以在AppDelegate.cpp下找到,项目在初始化时自动帮你重写好,自己可以进行修改。
![](https://img-blog.csdn.net/20160912154558811?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
void drawScene()绘制场景
void setAlphaBlending(bool on)设置Alpha混合是否开启,Alpha就是透明度,这项技术就是为了实现半透明效果,例如火光后的其他图会被覆盖一层火红色等。
void setDepthTest(bool on) 设置是否开启深度检测,等于检测是一个物体离摄像机有多远。
以下是游戏应用创建一个导演类并设置好配置然后运行场景的一段代码。
![](https://img-blog.csdn.net/20160912155550971?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
关于Director更多可参考官方API:http://api.cocos.com/cn/d7/df3/classcocos2d_1_1_director.html
在本篇文章里将介绍一下承担着导演作用的导演类Director。
导演类Director 继承自 ref类 才用单例设计模式(即这个类智能拥有一个实例)。
主要功能如下
1、负责场景之间的切换。
2、对视图的访问和OpenGLES接口的封装。
3、游戏的基本控制如暂停游戏、终止游戏等。
4、储存管理游戏中的全局配置信息。
常用方法
static Director * getInstance() 获取导演类实例,范围导演类指针(Director *)。
Scene * getRunningScene() 获取当前正在运行的场景,返回场景类指针(Scene*)。
double getAnimationInterval() 获取当年FPS(帧数)的导数,将其范围。
virtual void setAnimationInterval(double interval) 设置FPS,参数是FPS标准值的倒数,即刷一帧需要的时间。
bool isDisplayStats() 获取是否显示运行状态。
void setDisplayStats(bool displaysStats) 与上相反的设置函数。
float getSecondsPerFrame() 获取每秒的帧数,将其返回。
GLView* getOpenGLView() 获取OpenGLView(渲染引擎类)实例,并返回指针。
void setOpenGLView(GLView * openGLView) 与上相反。
TextureCache* getTextrueCache() 获取纹理缓冲,并返回指针。
bool isPaused() 获取当前场景是否暂停
Size getVisibleSize() 获取可见区域大小
Point getVisibleOrigin() 获取区域坐标原点
void runWithScene(Scene * scene)运行一个指定场景。
void replaceScene(Scene * scene)当前场景替换为指定场景,当前场景将被释放。
void end() 释放运行中场景。
void pause() 调用applicationDidEnterBackground()暂停运行中场景播放的动画。
void resume() 调用applicationWillEnterForeground()播放运行中场景播放的动画。
这两个函数都可以在AppDelegate.cpp下找到,项目在初始化时自动帮你重写好,自己可以进行修改。
void drawScene()绘制场景
void setAlphaBlending(bool on)设置Alpha混合是否开启,Alpha就是透明度,这项技术就是为了实现半透明效果,例如火光后的其他图会被覆盖一层火红色等。
void setDepthTest(bool on) 设置是否开启深度检测,等于检测是一个物体离摄像机有多远。
以下是游戏应用创建一个导演类并设置好配置然后运行场景的一段代码。
关于Director更多可参考官方API:http://api.cocos.com/cn/d7/df3/classcocos2d_1_1_director.html
相关文章推荐
- 简述Cocos2dx的基本组成
- Cocos Studio工程分析
- 实训五(Cocos2dx-3.x 打包apk再理解)
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- 【cocos2d-x 】解决scrollview上的menu拖动问题以及menu item在可视区外仍能触发的问题
- 一步一步了解Cocos2dx 3.0 正式版本开发环境搭建(Win32/Android)
- Cocos2dx3.0初认识
- Cocos2d-x-3.10 addImageAsync异步加载图片
- cocos编译android命令
- 关于Cocos2d-js中有的音效播放不出来的问题
- cocos2dx-js 的配置和安装
- Cocos2d-x3.0 iOS 一键编译多个target并打包ipa
- Xcode 打包Cocos2d-x踩坑记录
- Unity3d-从Cocos2d-x到Unity3d的一些不同
- Cocos2d-x Undefined symbols for architecture armv7: "xxtea_decrypt(unsigned char*, 解决方案
- cocos2d-x之button
- cocos2d-x relsese note github 地址
- cocos学习3
- vs2013环境cocos2d3.x 创建调试窗口
- JavaScript强化教程 —— Cocos2d-JS自动JSB绑定规则修改