前回作成したレーザービームのエフェクト爆発のエフェクトをつかってゲームをつくります。

プレイヤーとしてこの画像を使用します。

このペンライトの部分からレーザービームを発射させます。

これは上記の画像の幅と高さを80ピクセルに変更して(150, 150)が中心になるように配置したものです。

補助線を引くとレーザーはどこからどの方向に発射すればよいかがわかります。

あとはその方向にレーザーを発射する処理を書くだけです。

また敵キャラと敵の弾丸はこれを使います。

それでは作成していきましょう。

HTML部分

HTML部分部分を示します。

style.css

グローバル変数と定数

index.js

Soundクラスの定義

効果音を再生するためにSoundクラスを定義します。同じ効果音を短い間隔で再生するため、最初にAudioオブジェクトを複数生成しておき、交互に使います。

Laserクラスの定義

レーザーの状態を更新し描画するためにLaserクラスを定義します。

コンストラクタ

コンストラクタを示します。レーザーのタイプは2種類です。そのイメージは何回も使うので一度生成したらそれを静的配列のなかに格納しておきます。

更新と描画の処理

更新と描画の処理を示します。先端部分の座標をVX、VYだけ移動させます。もしレーザー全体がcanvasから外に出た場合は死亡フラグをセットします。描画するとき移動総量がレーザー本体の長さに満たない場合は後ろの部分は描画しません。

Fireballクラスの定義

爆発の描画をするためにFireballクラスを定義します。

やっていることは 爆発のエフェクトをシミュレーションする とあまり変わりません。火球を大量生成するため、一度生成したイメージを再利用できるように配列のなかに格納しているのと、火球の色が複数ある点が異なるだけです。