C言語を用いたシューティング ゲームの作成

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]煉獄庭園

ご清聴ありがとうございました。