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