プログラム勉強会

Java・Androidを中心に、JavaScript・PHP・HTML・CSSなどの備忘録。

カテゴリ: C言語

 この記事はMichiさんが書きました。

仕事とジムだけの毎日で、気がついたら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つがこのゲームの全てですね。
逆にこれだけ知ってればアドベンチャーゲーム(っぽいもの)は作れちゃう、ということです。
画像を用意する必要も無いです(笑

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

 この記事はMichiさんが書きました。

こんばんは。マイブームはホットヨガのMichiです。

前回の自己紹介で
> その他の言語 → 大昔に触ってたけど全て忘却
と書いたのですが、実は新卒で入ったのがシステムの開発会社で
2年ほどプログラマをやっておりました。

その頃、触っていた言語は
新卒研修 → C言語、SQL
実際の業務 → VB、VBA、ASP、SQL
あたりなんですが、いかんせん2年で辞めてしまったので
最後まで新卒に毛が生えたくらいのレベルでした。

その新卒時代に「C言語の研修の合間に遊びで作ったゲーム」が残ってたので、
今回はそれをご紹介。
続きを読む

このページのトップヘ