C言語を用いたシューティング ゲームの作成 07A1072 村山 和広 種田研究室
はじめに 現在ウィンドウズ上で動くゲームプログラムはC言語やJAVAで作られているのをよく見る。またフリーソフトを用いることでそういったゲームを自ら作成することも可能になっている。 今回は動作が速いといわれるC言語を用いてシューティングゲームを作成することにした。
開発環境 OS :Windows XP 言語 :C コンパイラ:Visual Studio 2005 ライブラリ:DXライブラリ DXライブラリとは2Dゲームの画像ファイルの読み込みを行ったり、音楽を再生する機能を有するライブラリである。
シューティングゲームについて シューティングゲームとは 主に弾丸やレーザーを 用いて敵機を撃ち落す コンピュータゲームである。 主に弾丸やレーザーを 用いて敵機を撃ち落す コンピュータゲームである。 例の一つにインベーダー ゲームがある。
ゲームの概要 自分の機体(以下、自機)が下から上に向かっていくように画面をスクロールさせる縦スクロールシューティングである。 ステージは1~3まであり、各ステージの最後にラスボスが待ち受けている。 自機はすべてのラスボスを倒しステージクリアを目指す。 残機がなくなるとゲームオーバーになり最初から再スタートとなる。
実際のゲーム画面 スコア 残機 パワー 敵機 自機
ゲームのステージについて① プログラムに直接、 敵機の情報を書き 足していくと量が 大変多くなり、 管理も難しくなる。 ・ 敵機の情報 敵1 追加しようとする敵情報 ・ 敵機の情報 敵1 出現場所 移動パターンetc… 敵2 出現場所 移動パターンetc… 敵XX 出現場所 移動パターンetc…
ゲームのステージについて② CSVファイルを作成しそこに敵機の情報を書き足していくことによって管理を容易にした。 カウンタが100の時出現 移動パターン:0 敵の種類:0 X座標:40 Y座標:-20 スピード0 etc…
ボスの弾幕① ボス用の弾幕の関数を用意し、その関数を変更することで様々な弾幕を作成した。 例の一つに☆の形を描き そこから自機に向かって 弾幕が速度に変化をつけ 飛んでくるようにした。
ボスの弾幕② アシストを用いた弾幕。 アシスト用の関数を用意し、 ボスからだけでなくボスの 周りから弾が出るように することで弾幕の幅を広げ ることができた。 アシスト拡大図
画像&音楽 背景はGIMPを用いて 作成し各ステージごとに 出るように調整した。 今回BGMは参考文献[4]の煉獄庭園のフリーのBGMを使用。 1面道中時のBGM、1面ボスのBGM…として使用した。
デモ発表 以上を踏まえてデモ発表を ご覧ください。
まとめ Cでゲームを作るサイトを参考することにより、 ゲーム作りの基礎やあらためて言語を学ぶことができた。そしてプログラムがしっかりしていないといい画像や音楽が自分の思ったとおりに表現できず面白みにかけてしまう。 課題点としては所々処理が重くなっているところが目に付くのでプログラムの改良を行う。また、ゲーム性が広がるようにボスなどの弾幕、音楽や画像を追加することなどが挙げられる。
参考文献 [1]C言語~ゲームプログラミングの館~ [2]龍神録プログラミングの館 [3]龍神録プログラミングの支館 [4]煉獄庭園
ご清聴ありがとうございました。