• 13、Cocos2dx 3.0游戏开发找小三之3.0中的Director :郝萌主,一统江湖


    重开发人员的劳动成果。转载的时候请务必注明出处http://blog.csdn.net/haomengzhu/article/details/27706967


    游戏中的基本元素

    在曾经文章中。我们具体介绍了游戏开发的概念以及 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 的很多其它函数使用请查阅:cocos2dCCDirector.h


    郝萌主友情提示:
    游戏中找到了小三,可是现实中千万不要去找、、、

  • 相关阅读:
    MySQL 函数
    ARC072_F Dam
    1373D
    科目二和科目三找准30厘米位置的点位
    MySQL 数字保留两位小数
    IntelliJ IDEA 中,项目文件右键菜单没有svn选项解决办法
    MySQL SQL语句书写顺序和执行顺序
    科目三道路驾驶技能考试之百米加减挡操作
    上海科目三道路驾驶技能考试夜间灯光模拟操作
    上海 科目三大路考试攻略
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5171542.html
Copyright © 2020-2023  润新知