300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 创建一个cocos2d-x工程添加一个自定义Scene并显示

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

时间:2018-06-30 16:19:52

相关推荐

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

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

创建的Scene头文件

1 // TollgateScene.cpp 2 3 #include "RunScene.h" 4 #include <CCLabelTTF.h> 5 using namespace cocos2d; 6 7 CCScene* RunScene::scene() 8 { 9 CCScene * scene = NULL;10do 11{12 // 'scene' is an autorelease object13 scene = CCScene::node();14 CC_BREAK_IF(! scene);15 16 // 'layer' is an autorelease object17 RunScene *layer = (RunScene *)RunScene::node();18 CC_BREAK_IF(! layer);19 20 // add layer as a child to scene21 scene->addChild(layer);22} while (0);23 24// return the scene25return scene;26 }27 28 bool RunScene::init()29 {30//CC_BREAK_IF(! CCLayer::init());31CCLabelTTF* label=CCLabelTTF::labelWithString("hellodddddddd","AppleGothic",32);32// Get window size and place the label upper. 33 CCSize size = CCDirector::sharedDirector()->getWinSize();34 label->setPosition(ccp(size.width / 2, size.height - 20));35 // CCTMXTiledMap* map = CCTMXTiledMap::tiledMapWithTMXFile("maps/leve1.tmx");36//this->addChild(map,1);37this->addChild(label,1);38return true;39 }

在AppDelegate中添加的代码:

CCScene *rScene=RunScene::scene();

// run

pDirector->runWithScene(rScene);

刚开始自己创建的Scene的init一直没有执行,找了半天的原因,发现在定义的Scene中没有调用LAYER_NODE_FUNC方法,查资料才发现要想调用init方法需要手动调用此方法,加了次方法,自定义的Scene果然显示出来了,向成功又迈进了一步,come on!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。