JavaScript スクランブルのようなゲームをつくる(1)の続きです。前回は必要なクラスを定義したので、今回はページが読み込まれたときの処理を実装します。

ページが読み込まれたときの処理

ページが読み込まれたときの処理を示します。canvasの大きさを調整して全体を黒で塗りつぶします。そのあとイメージを初期化してイベントリスナーを追加します。そのあとPlayerオブジェクトの生成、地形の障害物の生成と描画、ボリュームの調整をおこないます。

イメージを初期化

initImages関数は画像ファイルを読み込んでイメージを初期化します(必要な画像はimagesフォルダ内に用意しておく)。

イベントリスナーの追加

addEventListeners関数はイベントリスナーを追加します。

ボタンが押下、離されたときの処理、PCのキー操作への対応、チェックボックスのONOFFが切り替わったときの処理を定義しています。

地形の生成

getObjects関数は各オブジェクトを生成して配列に格納します。

ボリュームの初期化

レンジスライダーでボリュームの調整ができるようにする処理を示します。

ゲーム開始時の処理

isPlayingフラグをセットしてplayerの死亡フラグをクリアします。スコアを0にリセットしてステージ数を初期値である1にします。燃料を満タン状態にして各オブジェクトの配列をgetObjects関数で初期化して、スタートボタンを非表示にします。そしてチェックボックスの状態によってはスマホ用の操作ボタンを表示させます。

弾丸発射、爆弾投下時の処理

弾丸発射、爆弾投下の処理を示します。

連射が無制限にできるとゲームが簡単になりすぎるので連射制限をしています。一度処理がおこなわれるとその後0.2秒間は処理を拒否します。またプレイ中ではない場合、自機死亡時はなにもしません。弾丸と爆弾は自機先端の中央部から発射されます。