博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
13、Cocos2dx 3.0三,找一个小游戏开发3.0中间Director :郝梦主,一统江湖
阅读量:5929 次
发布时间:2019-06-19

本文共 2104 字,大约阅读时间需要 7 分钟。

重开发人员的劳动成果。转载的时候请务必注明出处

游戏中的基本元素

在曾经文章中,我们具体介绍了游戏开发的概念以及 Cocos2d-x 与其它游戏引擎的不同之处。甚至已经学会了它与众不同的 
内存管理机制。
想必大家已经非常期待開始探索 Cocos2d-x 游戏开发的世界了。
在后面的文章中,我们将结合详细的实例,从 Cocos2d-x 游戏开发的基本元素讲起。 
从这章開始,我会在学习引擎的过程中和大家一步步创建《找小三》这个游戏;
Director  :郝萌主,一统江湖
从英语字面上理解,这是一个"导演"类,Director 是控制游戏流程的主要组件。
回想引擎框架自己主动生成的HelloWorld 项目,程序生命周期中游戏载入期的最后一个方法 AppDelegate::applicationDidFinishLaunching,其代码例如以下所看到的:
bool AppDelegate::applicationDidFinishLaunching() {    // initialize director//初始化导演类    auto director = Director::getInstance();    auto glview = director->getOpenGLView();    if(!glview) {        glview = GLView::create(FontChina::G2U("郝萌主之找小三"));        director->setOpenGLView(glview);    }    // turn on display FPS//启用 FPS 显示    director->setDisplayStats(false);    // set FPS. the default value is 1.0/60 if you don't call this //设置 FPS 上限。假设不加设置,则默认 FPS 上限为 60    director->setAnimationInterval(1.0 / 60);    // create a scene. it's an autorelease object //创建一个场景,场景是一个 autorelease 对象    auto scene = HelloWorld::createScene();    // run //执行场景    director->runWithScene(scene);    return true;}
能够看到,事实上Director 的工作确实跟导演的工作很类似,Director 类主要负责下面工作。

 

1、游戏呈现方面的设定,包含设定游戏呈现的窗体、FPS 显示、默认帧率上限、纹理颜色位宽等。
2、切换当前的游戏场景,暂停或恢复游戏场景的执行。
总而言之,游戏在 Director 的管理下完毕了呈现设定与流程控制。
Director 扮演着武林萌主的角色,因而非常自然地採用了单例的设计模式,也就是说整个武林中就这一位。

在整个武林中、、、、哦,不,是在程序的不论什么地方,都能够通过以下的简单的代码訪问到: 
auto director = Director::getInstance();
在 Director 中,还定义了下面管理场景的方法。
runWithScene(Scene* scene):启动游戏,并执行 scene 场景。这种方法在主程序启动时第一次启动主场景时调用。
replaceScene(Scene* scene):直接使用传入的 scene 替换当前场景来切换画面,当前场景将被释放。这是切换场景时
最经常使用的方法。
pushScene(Scene* scene): 将当前执行中的场景暂停并压入到代执行场景栈中, 再将传入的 scene 设置为当前执行场景。
popScene:释放当前场景。再从代执行场景栈中弹出栈顶的场景,并将其设置为当前执行场景。假设栈为空,则直接结束
应用。与 pushScene 成对使用,能够达到形如由主界面进入设置界面,然后回到主界面的效果。

pause:暂停当前执行场景中的全部计时器和动作,场景仍然会显示在屏幕上。
resume:恢复当前执行场景中被暂停的计时器和动作。

它与 pause 配合使用。

end:结束场景。同一时候退出应用。
值得注意的一点是,以上三种切换场景的方法(replaceScene、pushScene、popScene)均是先将待切换的场景全然载入完 
毕后,才将当前执行的场景释放掉。
所以,在新场景恰好全然载入完成的瞬间,系统中同一时候存在着两个场景,这将是对
存的一个考验。若不注意的话,切换场景可能会造成内存不足。

PS:Director 的很多其它函数使用请查阅:cocos\2d\CCDirector.h
郝萌主友情提示:
游戏中找到了小三。可是现实中千万不要去找、、、

版权声明:本文博客原创文章。博客,未经同意,不得转载。

你可能感兴趣的文章
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
快速排序——Java
查看>>
unity游戏与我
查看>>
187. Repeated DNA Sequences
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
行列式的乘法定理
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
MySQL 5.6为什么关闭元数据统计信息自动更新&统计信息收集源代码探索
查看>>
apache prefork模式优化错误
查看>>
jmeter高级用法例子,如何扩展自定义函数
查看>>
通过jsp请求Servlet来操作HBASE
查看>>