新しいSceneクラスを作成します。
例ではCharacterList
と言うキャラクターを表示するシーンの想定していきます。
CharacterList.h
#ifndef CharacterList_h
#define CharacterList_h
#include "cocos2d.h"
class CharacterList : public cocos2d::Scene
{
public:
static cocos2d::Scene* Scene();
virtual bool init();
CREATE_FUNC(CharacterList);
};
#endif
CharacterList.cpp
#include "CharacterList.h"
USING_NS_CC;
Scene* CharacterList::Scene(){
auto scene = CharacterList::create();
return scene;
}
bool CharacterList::init()
{
if ( !Scene::init() ){
return false;
}
auto visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
auto sprite = Sprite::create("Background.jpg");
if (sprite == nullptr)
{
printf("Error");
}
else
{
setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
// add the sprite as a child to this layer
this->addChild(sprite, 0);
}
return true;
}
CPP内のCharacterList::create();
を実行する事で
CharacterListのinitが自動的に呼び出される様になってます。
大まかにこんな感じで準備したら、
切り替えたい箇所で次のコードを記述するだけ
Director::getInstance()->replaceScene(CharacterList::Scene());