Phaser3 継承
例えばゲーム作成でスコアを管理するときに、テキストと値はセットにした方が管理しやすい。ので、スコア管理クラスを作成。
何を継承元にすればいいかわからん
Phaser3のドキュメントみてみたら、Phaser.GameObjects.GameObject
がベースになるらしいので、これを継承してみる。継承したらコンストラクタの引数の最初にsceneを渡す。
class ScoreManager extends Phaser.GameObjects.GameObject { constructor(param) { super(param.scene); this.score = 0; this.scoreText = this.scene.add.text(8, 8, `score: ${this.score}`, { fill: "#ffaa88", fontSize: "26px" }); this.scoreText.depth = 3; } addScore(addScore) { this.score += addScore; this.scoreText.setText(`score: ${this.score}`); } reset() { this.score = 0; this.scoreText.setText(`score: ${this.score}`); } }
使用例
class GameScene extends Phaser.Scene { constructor() { super("GameScene"); } preload() { } create() { this.scoreManager = new ScoreManager({ scene: this }); } };