cocos2d-x シーンの作成メモ
デバッグ表示の削除
AppDelegate.cpp
director->setDisplayStats(false);
リソースの参照方法
AppDelegate.cpp
FileUtils::getInstance()->addSearchPath("images");
これでResourceディレクトリ以下のimageディレクトリも探索してくれるようになる
新しいファイルを追加したとき
Classesディレクトリに新しいファイルを追加したらAndroid.mkに追加する
LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldScene.cpp \ ../../Classes/MainScene.cpp \ ../../Classes/TitleScene.cpp
シーンの作成
TitleScene.h
#ifndef __Test__TitleScene__ #define __Test__TitleScene__ #include "cocos2d.h" class TitleScene :public cocos2d::LayerColor { protected: TitleScene(); virtual ~TitleScene(); bool init() override; public: static cocos2d::Scene* createScene(); void onEnterTransitionDidFinish() override; CREATE_FUNC(TitleScene); }; #endif // __Test__TitleScene__
TitleScene.cpp
#include "TitleScene.h" #include "MainScene.h" #include "SimpleAudioEngine.h" USING_NS_CC; Scene* TitleScene::createScene() { // シーンの作成と貼り付け auto scene = Scene::create(); auto layer = TitleScene::create(); scene->addChild(layer); return scene; } TitleScene::TitleScene() { } TitleScene::~TitleScene() { } bool TitleScene::init() { // 画面の背景に色をつける if(!LayerColor::initWithColor(Color4B(100, 100, 100, 255))) { return false; } // 画面サイズの取得 auto director = Director::getInstance(); auto winSize = director->getWinSize(); // 画像ファイルの貼り付け auto background = Sprite::create("title_background.png"); background->setPosition(Vec2(winSize.width / 2.0, winSize.height / 2.0)); this->addChild(background); // 上の画像ファイルの上から貼り付け auto logo = Sprite::create("title_logo.png"); logo->setPosition(Vec2(winSize.width / 2.0, winSize.height-150)); this->addChild(logo); // 上の画像ファイルの上から貼り付け auto touchToStart = Sprite::create("title_start.png"); touchToStart->setPosition(Vec2(winSize.width / 2.0, 90)); auto blink = Sequence::create(FadeTo::create(0.5, 127), FadeTo::create(0.5, 255), NULL); touchToStart->runAction(RepeatForever::create(blink)); this->addChild(touchToStart); // タッチイベントの登録 auto listener = EventListenerTouchOneByOne::create(); listener->onTouchBegan = [this](Touch* touch, Event* event){ CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("decide.mp3"); this->getEventDispatcher()->removeAllEventListeners(); auto delay = DelayTime::create(0.5); // 画面遷移コード auto startGame = CallFunc::create([]{ auto scene = MainScene::createScene(); auto transition = TransitionPageTurn::create(0.5, scene, true); Director::getInstance()->replaceScene(transition); }); // 少し待ってから画面遷移 this->runAction(Sequence::create(delay, startGame, NULL)); return true; }; this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this); return true; } // 音を鳴らす void TitleScene::onEnterTransitionDidFinish() { CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic("bgm/title.mp3", true); }