シューティングゲームを作りながらプログラミングを学ぼう!
高校生対象・プログラミング入門 (C言語編)

●プログラムでは,複数のデータをひとつにまとめてメモリ上に格納し,それらをまとめて
 処理することが多い。プログラミング言語では,そのように複数のデータをまとめて格納
 する手段が用意されている。その代表的な手段が「
配列(array)」である。ここでは,配列
 について学習していこう。

  1. 以下に,配列の基本的な考え方を示す。




  2. C言語でも,もちろん配列を使うことができる。以下に,C言語での配列の使い方を示す。




【配列まで進んでいる場合は】
●配列を使って,自機から弾を発射してみよう。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


【さらに敵を登場させてみよう】
 更に,敵を登場させてみたのが以下のarray2.cppである。testmain.cppの中身と入れ替えて実行してみよ。
array2.cpp