シューティングゲームで弾を撃てるようにしてみよう

【弾を撃てるようにしよう!】

・配列を使って,自機から弾を発射してみよう。Array.java (後掲)を以下の内容に
  押すと自機から弾が出ることが確認できる。
・新たに追加したのは緑色の2箇所(後掲Array.javaの①,②)だけである。
・まず,アイディアを示す。Array.java の①部分で
    3つのint型配列 shots_Life, shots_x, shots_y
 を宣言している。要素数はいずれも10個である。これらの3つの配列を使って,
 下図のように0番目〜9番目の弾を表す。
・shots_Lifeの要素は,弾が未発射である場合は0,発射済みの場合は1とい
 う値を設定するとする。
・shots_xとshots_yは,それぞれの弾のxy座標を表すわけである。
・また,Array.java の①の最後では,自機の弾のグラフィックデータ("Chars16_orange.bmp",
 大きさは16ピクセル×16ピクセル)を読み込んでいる。


・次に,whileによるループの中の緑のエリア(下図②) の部分を見てみよ。
 この部分は前半のif文と後半のfor文から成り立っている。
・ 前半のif文では,スペースキーが押されたかを判定し,スペースキー
 が押されたことが分かった場合,未発射の弾を配列の中から1個見つ
 けて,発射済みに設定し直し,XY座標を自機の鼻先の位置に設定し
 ている。
・そして,後半のfor文では,全ての弾に対し,画面から出た弾は未発射
 状態に戻し,発射済みの弾に関しては,弾のグラフィックを描画し,
 次の描画時のために弾の座標を前へ進めている。

Array.java (緑色の部分が IfElse.java に追加・変更を加えた箇所)


もちろん,以下の様に弾を表すクラスを定義して使用しても良い。

Array2.java (上記のArray2.javaを書き換えたもの)