cocos2d-x开发日志02 ——新建场景

3.新建场景

3.1新建C++项目文件
    右击classes,添加项目
    命名为GameScene即可得到GameScene.h和GameScene.cpp两个文件

3.2创建新场景

    3.2.1在GameScene.h中引用cocos2d库,申明命名空间:            
#include "cocos2d.h"
            USING_NS_CC;
    3.2.2在GameScene.h声明新的场景类:
class GameScene:public Layer{   //继承Layer,Layer是cocos中的图层类
                public:
                    static Scene * createScene(); //创建新场景的静态函数,外部不需要实例化可直接调用,后面会马上用到
                    CREATE_FUNC(GameScene_2);   //底层创建宏,不太明白不敢乱说,但是一定要声明。
                bool init();                //被create创建函数调用的初始化方法,大多数任务在这里面定义,非常重要,后面会说到
            };
        这三行方法声明是必须写在类里的,格式固定,不要自行改变。

    3.2.3在GameScene.cpp中实现声明的成员方法

        3.2.3.1实现成员方法createScene()
Scene * GameScene::createScene(){//该方法用于将GameScene这个图层包装在一个场景中,注意GameScene是一个图层,而场景是图层的一个容器,所以我们需要一个场景来放置图层
                    auto scene = Scene::create();//新建一个名为scene的场景
                    auto layer = GameScene::create();//新建一个名为layer的GameScene图层
                    cene->addChild(layer);//将layer添加到scene中
                    return scene;//返回这个scene场景
                  }
        3.2.3.2实现成员方法init()
bool GameScene::init(){
                        if(!Layer::init()) //判断父类有没有初始化成功,没有则返回false
                            return false;

                        //…//          //这里可以自行发挥,其他都是固定部分,尽量不要改变。

                    return true;
                }
3.3运行场景

    3.3.1修改入口文件
        将AppDelegate.cpp中的#include “helloWorld.h”替换成# include "GameScene.h”
            并找到这两句代码auto scene = helloWorld::createScene();
                    director->runWithScene(scene);
        将其中的helloWorld改成GameScene

    3.3.2运行
        单机左上角的运行按钮,等待编译并运行
        由于init中声明也没实现,所以应该是一个空场景。

你可能感兴趣的:(cocos2d-x开发日志02 ——新建场景)