cocos2d-xでシーンを切り替える
概要
- タイトル、ゲームメニュー、ゲームのように複数シーンの時の切り替え処理を作る
シーンクラス追加
- 新規でシーンクラスを作る
- メニューと選択物は下記画像参照
背景画像用意
- タイトルシーン用背景を作成してプロジェクトに追加
- TitleSceneで読み込んでる背景画像名を変更する
TitleScene.cpp
// add "HelloWorld" splash screen" CCSprite* pSprite = CCSprite::create("title_back.png");
起動時のシーンをタイトルシーンにする
- AppDelegate.cppのrunWithSceneの引数をTItleSceneのオブジェクトにする
AppDelegate.cpp
// create a scene. it's an autorelease object CCScene *pScene = Title::scene();
- とりあえずここまでで動かす
タイトルシーンから次のシーンに行くボタンをつける
- とりあえずなんかボタン押したらcocos2d-xの画面が出るようにする
- ボタン作成とコールバックはHelloWorldから持ってくる
TitleScene.h
// a selector callback void menuChangeScene(CCObject* pSender);
TitleScene.cpp:ボタン作成
///////////////////////////// // 2. add a menu item with change scene CCMenuItemImage *pChangeSceneItem = CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(Title::menuChangeScene) ); pChangeSceneItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20) ); // create menu, it's an autorelease object CCMenu* pMenu = CCMenu::create(pChangeSceneItem, NULL); pMenu->setPosition( CCPointZero ); this->addChild(pMenu, 1);
TitleScene.cpp:ボタンのコールバック
void Title::menuChangeScene(CCObject *pSender) { CCDirector::sharedDirector()->replaceScene( HelloWorld::scene()); }
動かす
- 最初にタイトルが出てボタンを押すとcocos2d-xのマスコットの画面が出る