いちおくまんえん

最近はcocos2d-xでゲームアプリ「いちおくまんえん」の制作がメインです。 あとアニメも少々・・

タイトル画面作成③ 遷移してきた後にBGMを再生

タイトル画面作成② 遷移してきた後にBGMを再生で書いた方法でも動くので特に問題はないのですが、遷移中の演出が終わった後に再生という内容であれば、もっとスマートな方法がありました。

virtual void Node::onEnterTransitionDidFinish();

というものがありまして、Transitionを使って遷移した場合、画面が切り替わったタイミングでこれが呼ばれるのですΣ(゚д゚lll)

なので、この中でBGM再生とかを呼んであげれば期待通りの動きになると思います!

// ヘッダー
virtual void onEnterTransitionDidFinish() override;

// 実装
void TitleScene::onEnterTransitionDidFinish()
{
    CCLOG("TitleScene::onEnterTransitionDidFinish()");
    Layer::onEnterTransitionDidFinish();

    SimpleAudioEngine::getInstance()->playBackgroundMusic(BGM_TITLE, true);   
}


でも遷移アニメーションの時間長めに取ってて半分くらい進んだ時に鳴らしたいとか、そういう場合は前回紹介したみたいにスケジューラ使うといいのかなと思います。

this->scheduleOnce(schedule_selector(TitleScene::playBGM), 0.5f);

みたいな。

今回のコミットログ
https://github.com/yasuhiro-matsuda/ichi_okuman_yen/commit/eb563702950271b059d7c8e0f322b585301de34f

実はこのonEnterTransitionDidFinishを見つけたのは、タッチイベントの取得で散々迷ったからなんですよね(;´∀`)

というわけで次の記事はタッチイベントの取得について書きます。