3Dっぽい縦シューティングゲームをつくります。プログラミング講座 第21回【シューティングゲーム作成(1)/JavaScript】を参考にしました。これはJavaScriptでつくられていますが、ここではC#を使います。またそのまま真似してもおもしろくないので3Dっぽい要素を取り入れます。

3DなのでOpenTKを使います。

基本的な仕様ですが、ザコ敵を倒してある程度進むとボス敵が出現します。また敵弾に当たってもすぐ死ぬわけではなくライフが低下していき、ゼロになったらゲームオーバーとします。

ザコ敵は2種類。素材は第23回【シューティング制作.3】 | プログラミング講座@youtube第26回【シューティング制作.6】 | プログラミング講座@youtubeにあったものを拝借しました。

画像は[コチラ]に置いておきますので、勉強に使う方がいたらダウンロードしてお使いください。

とのことなので、ありがたく利用させていただきましょう。もとの素材は「やさぐれひよこ素材」置き場にあります。

【ひよこ規約】を一部抜粋
■ 色変更・改変・再配布・使用用途は自由ぴよ。
色を変えたり、改造したり、タッチを似せて作った素材は、「自作素材」と宣言して配布してもらって大丈夫ぴよ。

とのことです。

では最初に基本的な部分だけ示します。タイマーをセットしてTickイベントが発生したら自作メソッドUpdate()を実行し、そのあとGLControlEx.Refresh()メソッドで再描画をしています。

それから視体積の設定はSetProjection()メソッド内で、透視射影、zNearを0.01fに、zFarを40.0fにしています。

次に視点の位置ですが、X座標は0,Y座標は最初は-6f、以降はUpdateメソッドが実行されるたびに0.2fずつ前に進行させます。Z座標は5fです。またターゲットはX座標は0,Y座標は最初は7f(以降はUpdateメソッドが実行されるたびに0.2fずつ前に移動)、Z座標は0です。XY平面を少し上から眺め下ろした形になります。

それっぽく見せるために自作メソッドDrawField()で縦横に直線を描画しています。