いちばんやさしいゲームの作り方

文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ

100 体分の敵キャラクターをなるべく少ないコードで動かすためには、配列と for 文を組み合わせます。

まず、敵キャラクターの総数を定数で定義します。定数で定義する理由は「あとで変更するのが楽」だからです。

#define MAX_ENEMY 100

こうすることで、プログラムから MAX_ENEMY という定数を使うことができるようになります。意味は 100 と数字で書いたときと同じになります。

次に敵キャラクターの情報を保存する配列を作ります。今回の場合は 100 体分の敵キャラクターが必要ですので 100 …と、数字で指定したいところですが、ここで先ほど定義した定数を使います。

Enemy enemies[MAX_ENEMY];

100 という数字を MAX_ENEMY という定数で置き換えることで、敵キャラクターの増減が簡単になります。たとえば、敵キャラクターを 200 体に増やしたい場合は、 #define MAX_ENEMY 200 と書き直すだけで 200 体分の配列を作れるようになります。

100 体分の配列が作れたら準備が完了です。次はゲームの中から 100 体分の敵キャラクターを動かします。しかし、プログラムは一度にひとつのことしかできませんので 100 体の敵キャラクターを同時に動かすことはできません。 100 体分の敵キャラクターを動かすためには、きわめて短い間隔で1体ずつ動かして、見かけ上同時に動いているように見せるのです(アニメーションの原理と同じ)。これを実現するためには for 文を使います。

for (int i = 0; i <MAX_ENEMY; i++) {
  doEnemy(enemies[i]);
}

1体の敵キャラクターを動かすための関数が doEnemy() で、どの敵キャラクターを動かすのかを引数で受け取るような仕様の場合、先ほど作った enemies 配列に、現在のループは何回目かを数えている i という変数を組み合わせて enemies[i] とする点がポイントです。このように書くと、1回目のループでは i の値が0ですので enemies[0] を参照することができ、2回目のループでは i の値が1ですので enemies[1] を参照することができるようになります。この調子で 100 回繰り返すわけですから、結果的に 100 体分の敵キャラクターを順番に参照していることになります。

これは基本的にして重要なイディオムですので覚えてしまいましょう。

Contributions




Trackback URL

メルマガ登録・解除
 
挫折不可能!初級ゲームプログラミング完全マニュアル
RSS track feedいちばんやさしいゲームの作り方 TECHNORATI お気に入りに追加する
フィードメーター - いちばんやさしいゲームの作り方 ブログSEO対策:track word カウンター
Firefox meter あわせて読みたい SEO STATUS
このページの先頭へ