cocos2dx 3.2 学习篇之三(场景的创建与切换)

        丰富多彩的双休日过去了,你是宅在家里了还是出去晒太阳了,还是和妹子约会去了,反正我是回家陪我妈妈过生日去了,至少没宅家里,感觉还是比较充实的。好了废话不多说,开始讲我的学习cocos2dx之路。本次学习的成果主要游戏的场景创建和场景间的相互切换以及很好的了解了游戏的整体框架。


       首先,我们必须了解的是游戏的整体框架,游戏是怎么运行的。这边我在某个教学视频上盗图一张,我可是用在学习的方面,没有商用啊!所以请原作者看到原谅我啊,当然因为是截图,有点模糊,大家不要介意。

        下面上图。。。

       cocos2dx 3.2 学习篇之三(场景的创建与切换)_第1张图片


        其实cocos2dx制作游戏的流程其实和拍电影差不多,整个游戏的控制者就是导演,但是和电影不一样的是,电影可能有两个导演,可是游戏一定只有一个导演,任何时候你想叫导演的时候只要  Director::getInstance(),就可以简单的把导演叫出来了,然后可以和导演说 导演我们开拍了,我们先从第一个场景 theFirstScene 开始拍起吧(Director::getInstance()->runWithScene(theFirstScene)), 播完一个场景,你可以切换场景了(Director::getInstance()->replaceScene()), 也可以问我们导演,我们游戏在设备上播放的窗口有多大(Size winSize = Director::getInstance()->getWinSize())?  也可以和导演说,这个场景先暂停一下,我先插入另外一个场景 Director::getInstance()->pushScene(Scene* theNewSceneYouWantToPlay),等另外一个场景播放完了我再返回播放原场景(Director::getInstance()->popScene()); 如果想切换场景的时候来个过度动画,其实也是非常简单的,cocos2dx自带非常多的过度动画效果,这边我找到一篇文章是主要介绍cocos2dx场景切换的用法的,不过针对的是cocos2dx 2.x 版本,所以换到3.2版本需要去“cc”化, 当然,老版本估计也可以用。好附上网址: 点击打开链接 

上面基本比较生动形象的介绍了场景切换各种情况,具体代码比较简单,所以不加以详细代码说明。

   


       说完游戏整体框架和各种场景切换方法,接下来讲的主要是场景的创建。其实每个工程刚刚被创建的时候,进去就是一个helloworld的场景,其实这就是一个很好的学习demo。下面来看helloworld类中,用于创建场景的代码:

    //helloworld.h
    //用静态方法创建一个场景,并返回场景的指针,其实这个就是创建了一个场景了。
    static cocos2d::Scene* createScene();

//helloworld.cpp
Scene* HelloWorld::createScene()
{
    // 'scene' is an autorelease object
    //创建一个空白场景
    auto scene = Scene::create();
    
    // 'layer' is an autorelease object
    //创建一个helloWorld图层,蹦添加到空白场景中。
    auto layer = HelloWorld::create();

    // add layer as a child to scene
    scene->addChild(layer);

    // return the scene
    return scene;
}

        上面例子就是创建了一个场景附赠一个图层。当然也可以多添加几个图层,当然也可以场景独立门户,自己创建一个类继承 Scene 然后调用其他图层类里面的图层,添加到场景中去,怎么方便就怎么去是实现。

      

      场景创建好了,图层添加好了,就可以在图层上面 添加简单ui,还可以在图层上面添加图层,添加精灵等等。这样一个完整的游戏框架就搭建起来了。就可以尝试的做一款简单,实用的小游戏了。。。




      = = 写着写着头痛了。不爽。。。


你可能感兴趣的:(cocos2dx学习之路)