仕事とジムだけの毎日で、気がついたら1ヶ月くらい過ぎてたMichiです。

ちょっと時間が開いちゃいましたが、前回書いた「Cで作ったアドベンチャーゲームの紹介」の続きです。

005

前回紹介した方法で背景を描画した後、その下に選択肢を表示して数字を入力させることで次のイベントに進んで行きます。

この「イベントの背景を表示→選択肢を選択→選んだイベントに進む」という流れはアドベンチャーゲームの基本の一つだと思うのですが、「whileループ」と「switch case」を使うことで意外と簡単にできちゃいます。

上の画面だと「1:進む」を選んだ場合のみ次のイベントに進むのですが

while(EndFlag == 1){	// EndFlagがonになった場合のみループを抜ける
// 背景と選択肢を表示
c = getch(); // 押されたキーを取得
switch (c) { // 押された数字によって処理を分岐
case 1:
EndFlag = 1; // EndFlagをonに
break;
case 2:
// 「話す」の処理
break;
case 3:
// 「ステータス」を表示
break;
default:
// 他のキーを押されたら最初に戻る
}
}

// 次のイベント
色々端折って書いちゃってますが、こんな感じで一つのイベントをwhileループの中にまとめ、これをどんどん繋げていくことでアドベンチャーゲームができてしまします。
(これは我流なのでもっと効率的なやりかたがあります、きっと・・・)

進んで行くと敵(お忘れかもしれまんが「超人」をテーマにしたゲームです)が現れ、ドラクエ風バトルが始まります。

006

バトルのイベントも基本的には上記の仕組みで
  • 選択されたコマンドごとの処理を「switch case」で振り分け
  • 勝利、敗北、逃げるなどで「whileループ」を抜ける
って感じで書けちゃいます。

ゲームはこんな感じで進んで行きます。

007

008

  • 色つき「■」を使った背景の表示
  • 「whileループ」と「switch case」を使ったイベント処理
この2つがこのゲームの全てですね。
逆にこれだけ知ってればアドベンチャーゲーム(っぽいもの)は作れちゃう、ということです。
画像を用意する必要も無いです(笑

では今回はこのへんで。
これを書いてたらまた何かゲームが作りたくなってきました(^^