シューティングゲームで学習した内容の応用例を確認してみよう

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

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


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

array.cpp