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

创建一个cocos2d-x工程添加一个自定义Scene并显示

2013-09-04 22:19 591 查看
#include "cocos2d.h"

class RunScene :public cocos2d::CCLayer
{
public:

virtual bool init();
static cocos2d::CCScene* scene();
LAYER_NODE_FUNC(RunScene);//此函数名需要根据具体的版本来定,不同版本函数名不一样,可以直接根据例子程序来查看当前此函数的函数名是啥,o(∩_∩)o 哈哈
};


 创建的Scene头文件

// TollgateScene.cpp

#include "RunScene.h"
#include <CCLabelTTF.h>
using namespace cocos2d;

CCScene* RunScene::scene()
{
CCScene * scene = NULL;
do
{
// 'scene' is an autorelease object
scene = CCScene::node();
CC_BREAK_IF(! scene);

// 'layer' is an autorelease object
RunScene *layer = (RunScene *)RunScene::node();
CC_BREAK_IF(! layer);

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

// return the scene
return scene;
}

bool RunScene::init()
{
//CC_BREAK_IF(! CCLayer::init());
CCLabelTTF* label=CCLabelTTF::labelWithString("hellodddddddd","AppleGothic",32);
// Get window size and place the label upper.
CCSize size = CCDirector::sharedDirector()->getWinSize();
label->setPosition(ccp(size.width / 2, size.height - 20));
// CCTMXTiledMap* map = CCTMXTiledMap::tiledMapWithTMXFile("maps/leve1.tmx");
//this->addChild(map,1);
this->addChild(label,1);
return true;
}


在AppDelegate中添加的代码:

CCScene *rScene=RunScene::scene();
// run
pDirector->runWithScene(rScene);

刚开始自己创建的Scene的init一直没有执行,找了半天的原因,发现在定义的Scene中没有调用LAYER_NODE_FUNC方法,查资料才发现要想调用init方法需要手动调用此方法,加了次方法,自定义的Scene果然显示出来了,向成功又迈进了一步,come on!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐