【Cocos2d-x】シーンの移動

【Cocos2d-x】シーンの移動について

ボタンを押したら別の画面に移動できるようにします。

SecondScene.cppとSecondScene.hをC++ファイルとして新規で作成します。
HelloWorldSceneにならって、
SecondScene.hは

#include "cocos2d.h"
USING_NS_CC;

class SecondSceneLayer : public cocos2d::Layer
{
public:
    static cocos2d::Scene* createScene();
    virtual bool init();
    CREATE_FUNC(SecondSceneLayer);
    
};

SecondScene.cppは

#include "SecondScene.h"

Scene* SecondSceneLayer::createScene()
{
    auto scene = Scene::create();
    auto layer = SecondSceneLayer::create();
    scene->addChild(layer);
    return scene;
}

bool SecondSceneLayer::init()
{
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size winSize = Director::getInstance()->getWinSize();
    
    Label *label = Label::createWithTTF("SecondScene", "Osaka.ttf", 40);
    label->setPosition(Vec2(winSize.width/2, winSize.height/2));//座標を画面の真ん中に指定
    label->setTextColor(Color4B::BLUE);
    this->addChild(label, 1);
    
    return true;
}

あとは、HelloWorldSceneからSecondSceneを呼び出します。

HelloWorldScene.cppの一番上に

#include "SecondScene.h"

ボタンアクションを参考に、ボタンアクションを実装して、

void HelloWorld::pushBtn(cocos2d::Ref *ref) {
    auto scene = SecondSceneLayer::createScene();
    Director::getInstance()->replaceScene(scene);
}

中身をこのように変更すればOK!

ボタンを押すと、画面が切り替わります。
beginne7-1

今回は以上。

 

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

CAPTCHA