Chapter 08

デフォルトで用意されてるSceneについて知る

alkn203
alkn203
2021.09.12に更新

default-scenes

デフォルトで用意されているシーン

ゲーム作りにおいてシーン管理は重要ですが、phina.js ではデフォルトで簡単なシーンが用意されていますので、その使い方を紹介します。

シーンの種類

SplashScene

スプラッシュシーンと呼ばれているゲーム起動時に表示されるシーンです。

TitleScene

文字通りのタイトル画面です。デフォルトだとこの画面が表示されます。

MainScene

メインのゲームシーンです。

ResultScene

シーンの遷移

各シーンは、SplashScene → TitleScene → MainScene → ResultSceneの順番で遷移します。

開始シーンの指定

GameAppstartLabelで開始シーンを指定することができます。

  • SplashScene・・・splash
  • TitleScene・・・指定しない場合
  • MainScene・・・main
  • ResultScene・・・result
/*
 * メイン処理
 */
phina.main(function() {
  // アプリケーションを生成
  var app = GameApp({
    // SplashScene から開始
    startLabel: 'splash',
  });
  // fps表示
  //app.enableStats();
  // 実行
  app.run();
});

MainSceneからResultSceneへの遷移

MainSceneの中でexitメソッドを呼び出すと、次のシーン(ResultScene)に遷移します。

/*
 * メインシーン
 */
phina.define("MainScene", {
  // 継承
  superClass: 'DisplayScene',
  // 初期化
  init: function() {
    // 親クラス初期化
    this.superInit();
    // thisを退避
    var self = this;
    // 画面タッチ時
    this.onpointstart = function() {
      // ResultSceneへ
      self.exit();
    };
  },
});

上の例だと、画面をタッチするとResultSceneに遷移します。参照ミスにならないようにthisself変数に代入している点に注意してください。

サンプルコード

コードを見る
// グローバルに展開
phina.globalize();
/*
 * メインシーン
 */
phina.define("MainScene", {
  // 継承
  superClass: 'DisplayScene',
  // 初期化
  init: function() {
    // 親クラス初期化
    this.superInit();
    // thisを退避
    var self = this;
    // 画面タッチ時
    this.onpointstart = function() {
      // ResultSceneへ
      self.exit();
    };
  },
});
/*
 * メイン処理
 */
phina.main(function() {
  // アプリケーションを生成
  var app = GameApp({
    // SplashScene から開始
    startLabel: 'splash',
  });
  // fps表示
  //app.enableStats();
  // 実行
  app.run();
});

runstantプロジェクト

https://runstant.com/alkn203/projects/2efbe7d8