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中声明也没实现,所以应该是一个空场景。