HTML5 キャンバス スペース インベーダー ゲームに取り組んでおり、Game.ts クラスで、プレイヤー クラスのシュート メソッド (gameObject モジュール ファイル内) からイベントを受け取りたいと考えています。Game.ts には playerBullets という変数があり、これを更新する必要があります。プレイヤーが撃つたびに!
module GameObjects {
// Class
export class Player {
color: string = "#00A";
x: number = 50;
y: number = 270;
width: number = 20;
height: number = 30;
constructor () {
}
draw(canvas) {
canvas.fillStyle = this.color;
canvas.fillRect(this.x, this.y, this.width, this.height);
}
shoot() {
// Sound.play("shoot");
var bulletPosition = this.midpoint();
playerBullets.push(Bullet({
speed: 5,
x: bulletPosition.x,
y: bulletPosition.y
}));
};
midpoint() {
return {
x: this.x + this.width / 2,
y: this.y + this.height / 2
};
};
explode() {
// this.active = false;
// Extra Credit: Add an explosion graphic and then end the game
};
};
}
そしてgame.ts:
class game {
constructor () {
}
var playerBullets: Array = new Array[40];
FPS: number = 30;
何か案は?
純粋なjsでこれを行っていた場合、すべてのものをグローバルにしてイベントを必要としないようにするのは簡単ですが、維持するのは難しいでしょう..