您的位置:首页 > 移动开发 > Cocos引擎

Cocos2D-X学习3:创建一个新的场景

2016-10-12 21:31 344 查看

1、创建cocos项目

首先使用cocos-console创建一个项目工程,在命令行窗口下输入cocos new  -p CocosProject01 -l cpp -d D:\cocos2d-x-3.3\test CocosProject01,创建一个名为CocosProject01的项目并使用VS2012打开。

2、添加场景类

在项目处右键选择增加-类,创建一个名为MyScene的新类,如下图。



注意,虽然MyScene命名为scene,称为场景类,但是它继承自Layer,而不是继承自Scene,因此它是一个层而不是一个场景。

3、编辑场景类

参考HelloWoldScene.h编辑MyScene.h的内容,编辑完后的内容如下:

#include "cocos2d.h"
class MyScene : public cocos2d::Layer
{
public:
    static cocos2d::Scene* createScene(); // 定义静态函数,用于获取场景对象
    virtual bool init();                  // 初始化场景      
    CREATE_FUNC(MyWorld);                 // 这里使用了 CREATE_FUNC 宏
};


在MyScenecpp中实现MyScene.h中定义的方法,代码如下:

#include "MyScene.h"
USING_NS_CC;

Scene* MyWorld::createScene() //功能创建并返回一个场景对象
{
auto scene = Scene::create();   //创建一个场景对象
auto layer = MyWorld::create(); //创建Myscene对象
scene->addChild(layer);         //将layer加入到场景scene中去
return scene;                   //返回创建好的场景对象
}
bool MyWorld::init()
{
if(!Layer::init())
{
return false;
}
//在这里向场景中添加内容
return true;
}
关键字auto,编码器将会在编译时自动对变量类型进行识别。

运行后的场景如下,与初始的场景相同,这是由于屏幕的内容在AppDelegate.cpp中的定义并没有更改。



4、在AppDelegate中更改屏幕显示内容

注意要在AppDelegat.cpp中导入MyScene.h头文件。

在AppDelegate.cpp中找到applicationDidFinishLaunching方法,在其最末尾处有如下代码:

// create a scene. it's an autorelease object
auto scene = HelloWorld::createScene();
可以看到在这里创建场景scene使用的是HelloWord类,现在需要将它改为自己定义的类MyScene:

// create a scene. it's an autorelease object
auto scene = MyWorld::createScene();
这样就将屏幕显示的内容改为了MyWorld类,由于MyScene.cpp中MyWorld::init没有内容,因此运行后程序为空白图如下:



AppDelegate::applicationDidFinishLaunching下有窗口属性和帧率控制相关的函数:

glview = GLViewImpl::create("My Game");           //设置窗口标题
glview -> setFrameSize(640,360);                  //设置窗口分辨率
director->setDisplayStats(true);                  //显示帧率fps信息
director->setAnimationInterval(1.0 / 60);         //设置屏幕fps,默认为每秒60次



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: