Scene(シーン)を作成する
cocos2dxでプロジェクトを作成する際に、必ず設定をしないと行けないのがシーンになります。
これはSceneクラスで設定をします。
ゲームの基礎になるのが、このSceneなのです。
HellowWorldScene.cppに以下のようにシーンが設定をされています。
【Ver3.x】
//ヘッダー static cocos2d::Scene*scene();
Scene* HelloWorldScene::scene() { auto scene = CCScene::create(); auto layer = HelloWorld::create(); scene->addChild(layer); return scene; }
【Ver2.x】
//ヘッダー static cocos2d::CCScene*scene();
CCScene* HelloWorldScene::scene() { CCScene *scene = CCScene::create(); HelloWorld *layer = HelloWorld::create(); scene->addChild(layer); return scene; }
Sceneを単独で利用
上記の例では、SceneとLayerが同じファイルに記載されていますが、Scene単独でももちろん利用できます。SpriteやLayerクラスと同じようにinit()を使い初期化をします。
【Ver3.x】
//ヘッダー static cocos2d::Scene *scene(); virtual bool init();
Scene *HogeScene::scene(){ auto scene = HogeScene::create(); return scene; } bool HogeScene::init(){ if (!Scene::init()) { return false; } auto layer = HogeLayer::create(); this->addChild(layer); return true; }
【Ver2.x】
//ヘッダー static cocos2d::CCScene*scene(); virtual bool init();
CCScene*HogeScene::scene(){ HogeScene*scene = HogeScene::create(); return scene; } bool HogeScene::init(){ if (!CCScene::init()) { return false; } HogeLayer *layer = HogeLayer::create(); this->addChild(layer); return true; }
アプリを立ち上げた際の、最初のシーンを設定する
アプリを立ち上げるとこのシーンが表示されるのですが、これはどこで管理をしているのでしょうか?それは、[AppDelegate.cpp]で管理をしています。
runWithSceneというメソッドを利用している箇所があります。
ここで、最初に表示するSceneを指定しています。
bool AppDelegate::applicationDidFinishLaunching(){ ~~~ ~~~ ~~~ //ここで、最初のシーンを設定している。 // create a scene. it's an autorelease object //Ver3.x auto scene = HelloWorldScene::scene(); director->runWithScene(scene); //Ver2.x CCScene *pScene = HelloWorldScene::scene(); pDirector->runWithScene(pScene);
経営育成ゲーム「わたしの動物園」をリリースしました!
cocos2dxを使って作成したアプリを作成しました。
無料で遊べますので、ぜひゲーム作りの参考にしてみて下さい!
【Sponsored Link】
更新履歴
- 2015年1月29日 : Jniを利用する
- 2015年1月27日 : デバックのための、ログの利用
- 2015年1月24日 : Android – 新規ファイルの追加と保存場所
- 2014年6月13日 : OSを判別する
- 2014年6月13日 : 効果音を再生する