Chapter 03

Spriteクラスを継承して独自のクラスを作る

alkn203
alkn203
2021.09.12に更新

クラスを継承する

Spriteクラスを継承して新たなクラスを作成する方法について説明します。

/*
 * Tomapikoクラス
 */
phina.define("Tomapiko", {
  // Spriteクラスを継承
  superClass: 'Sprite',
  // コンストラクタ
  init: function() {
    // 親クラス初期化
    this.superInit('tomapiko');
  },
});
  • Spriteクラスを継承したTomapikoクラスを作成しています。
  • superClassで継承元のクラスを指定します。
  • this.superInit で継承元のクラス(Sprite)を初期化できるので、引数にアセット名を与えます。

サンプルコード

コードを見る
// グローバルに展開
phina.globalize();
// アセット
var ASSETS = {
  // 画像
  image: {
    'tomapiko': 'https://cdn.jsdelivr.net/gh/phinajs/phina.js@v0.2.3/assets/images/tomapiko.png',
  },
};
/*
 * メインシーン
 */
phina.define("MainScene", {
  // 継承
  superClass: 'DisplayScene',
  // コンストラクタ
  init: function() {
    // 親クラス初期化
    this.superInit();
    // 背景
    this.backgroundColor = 'skyblue';
    // プレイヤー作成
    var player = Tomapiko().addChildTo(this);
    // 初期位置
    player.x = this.gridX.center();
    player.y = this.gridY.center();
  },
});
/*
 * Tomapikoクラス
 */
phina.define("Tomapiko", {
  // Spriteクラスを継承
  superClass: 'Sprite',
  // コンストラクタ
  init: function() {
    // 親クラス初期化
    this.superInit('tomapiko');
  },
});
/*
 * メイン処理
 */
phina.main(function() {
  // アプリケーションを生成
  var app = GameApp({
    // MainScene から開始
    startLabel: 'main',
    // アセット読み込み
    assets: ASSETS,
  });
  // fps表示
  //app.enableStats();
  // 実行
  app.run();
});

runstantプロジェクト

https://runstant.com/alkn203/projects/d8b84ede