第二章「実戦!SDLでゲーム作り@〜某宇宙人〜」第一話


ついにここまでやってこれました。
筆者も大好きなゲーム作り。
さてさて、どんなゲームを作っていきましょう〜〜

ここは、いっそ、大規模RPG!!なんて、できるわけがないので、
比較的簡単そうなイン○ーダー風なゲームを作ってみましょう。


いきなり作れと言われても、何から手をつけていいのやら・・・ということになりますよね。

基本的なことですけれども、どんなプログラムでも一番最初は構成を考えます。

今回の場合、「某宇宙人遊び」(?)なので、登場するのは、
自機、敵、ミサイル、ブロック、UFOといったところでしょうか。

それプラス、スコア管理、当たり判定・・など、ゲームに関する要素はたくさんあります。

さらに、プログラム内部の役割もありますから、しっかり役割分担させないと、途中で行き詰ってしまいますね。


では、具体的な役割分担の例を作っていきます。
メイン
プログラム初期、終了
描画

ゲーム初期化
ゲームメイン
ゲームオーバー
スコア

キー入力
自機移動
ミサイル移動自機
ミサイル移動敵
敵移動
UFO移動

当たり判定自機-敵ミサイル
当たり判定敵-自機ミサイル
当たり判定ブロック-敵ミサイル
当たり判定ブロック-自機ミサイル
当たり判定ブロック-敵
当たり判定UFO-自機ミサイル
当たり判定敵-自機
思いつく処理を並べてみました。
しかし今度は多すぎて逆にまとまらなくなりましたね。
そこで、これらの処理を、合理的に結びつけて、それぞれのファイルにしてしまいましょう。
Mainメイン プログラム全体の流れの指示を行う。
InitEventEndプログラム初期、終了 ほとんどのプログラムで処理が一緒なので
特に手を加えなくても良い。
Draw描画 どんなゲームでも処理が同じになるように、合理的に作る。
GameInitOverゲーム初期、オーバー 初期の位置や、オーバーしたときの設定。
一度作れば、たいてい手を加えなくて大丈夫。
GameMainゲームメイン このゲームでの流れの管理を行う。
Inputキー入力 このゲームのキーの割り当てをする。これも一度作ればOK
Chara自機移動、当たり判定自機-敵 ゲームの基本的な部分。キーと連動して動けるように、設定していく。
Enemy敵移動、当たり判定敵-ブロック、UFO移動 動きはシンプルだが、数が複数になるので、少々手間がかかる。
MissileCharaミサイル自機、当たり判定自機ミサイル-ALL、 自機ミサイルは、キーを押したときに発生するようにする。
当たり判定が多いが、一括で行えるようにすれば、処理は少しで済む。
MissileEnemyミサイル敵、当たり判定敵ミサイル-ALL ランダムで発生させる。
当たり判定は、自機と同じように作る。

さっそく、一番簡単そうなものから手をつけていきましょう。

一番手を加えなくてすむInitEventEndと一度決めたら済むInputを見てみましょう。
InitEventEnd
Input

Inputは、今回は筆者の経験不足でこのような昔ながらの方法になりましたが、
もっと合理的な方法が見つかれば、随時更新していきます。

〜〜第二話へ〜〜