仕事とジムだけの毎日で、気がついたら1ヶ月くらい過ぎてたMichiです。
ちょっと時間が開いちゃいましたが、前回書いた「Cで作ったアドベンチャーゲームの紹介」の続きです。
前回紹介した方法で背景を描画した後、その下に選択肢を表示して数字を入力させることで次のイベントに進んで行きます。
この「イベントの背景を表示→選択肢を選択→選んだイベントに進む」という流れはアドベンチャーゲームの基本の一つだと思うのですが、「whileループ」と「switch case」を使うことで意外と簡単にできちゃいます。
上の画面だと「1:進む」を選んだ場合のみ次のイベントに進むのですが
(これは我流なのでもっと効率的なやりかたがあります、きっと・・・)
進んで行くと敵(お忘れかもしれまんが「超人」をテーマにしたゲームです)が現れ、ドラクエ風バトルが始まります。
バトルのイベントも基本的には上記の仕組みで
ゲームはこんな感じで進んで行きます。
逆にこれだけ知ってればアドベンチャーゲーム(っぽいもの)は作れちゃう、ということです。
画像を用意する必要も無いです(笑
では今回はこのへんで。
これを書いてたらまた何かゲームが作りたくなってきました(^^
ちょっと時間が開いちゃいましたが、前回書いた「Cで作ったアドベンチャーゲームの紹介」の続きです。
前回紹介した方法で背景を描画した後、その下に選択肢を表示して数字を入力させることで次のイベントに進んで行きます。
この「イベントの背景を表示→選択肢を選択→選んだイベントに進む」という流れはアドベンチャーゲームの基本の一つだと思うのですが、「whileループ」と「switch case」を使うことで意外と簡単にできちゃいます。
上の画面だと「1:進む」を選んだ場合のみ次のイベントに進むのですが
while(EndFlag == 1){ // EndFlagがonになった場合のみループを抜ける色々端折って書いちゃってますが、こんな感じで一つのイベントをwhileループの中にまとめ、これをどんどん繋げていくことでアドベンチャーゲームができてしまします。
// 背景と選択肢を表示
c = getch(); // 押されたキーを取得
switch (c) { // 押された数字によって処理を分岐
case 1:
EndFlag = 1; // EndFlagをonに
break;
case 2:
// 「話す」の処理
break;
case 3:
// 「ステータス」を表示
break;
default:
// 他のキーを押されたら最初に戻る
}
}
// 次のイベント
(これは我流なのでもっと効率的なやりかたがあります、きっと・・・)
進んで行くと敵(お忘れかもしれまんが「超人」をテーマにしたゲームです)が現れ、ドラクエ風バトルが始まります。
バトルのイベントも基本的には上記の仕組みで
- 選択されたコマンドごとの処理を「switch case」で振り分け
- 勝利、敗北、逃げるなどで「whileループ」を抜ける
ゲームはこんな感じで進んで行きます。
- 色つき「■」を使った背景の表示
- 「whileループ」と「switch case」を使ったイベント処理
逆にこれだけ知ってればアドベンチャーゲーム(っぽいもの)は作れちゃう、ということです。
画像を用意する必要も無いです(笑
では今回はこのへんで。
これを書いてたらまた何かゲームが作りたくなってきました(^^