プログラミング実況(仮)例

インベーダーゲーム作ってた時の実況をまとめた物。同種の事をする際のサンプルとして公開しておきます。
2
oracle @mr0916

ということでインベーダー。とりあえずルールを確認すると

2011-01-29 15:08:59
oracle @mr0916

1.自機が弾を発射できる。弾は敵に当たると敵を破壊。2.敵も弾を発射してくる。被弾したら自機-1 3.敵は三種類。破壊した際の得点は異なる。4.弾に当たってもしばらく壊れない防壁が存在する。

2011-01-29 15:10:48
oracle @mr0916

発射できる玉は画面上に一つしか同時に存在できない、はゲームによって異なるみたい。

2011-01-29 15:12:22
oracle @mr0916

そんな感じで。暗黙で分かってくれるようなそうでないような。

2011-01-29 15:12:52
oracle @mr0916

今回用いるライブラリは「ゲームプログラマになる前に覚えておきたい技術」付属の3DHardware1です。2D版では最終版一歩手前のライブラリになります。

2011-01-29 15:14:28
oracle @mr0916

ということでスタート。まずは爆弾人から使えそうなクラスをコピペします。File,Image,Vector2d,Matrix23,Pad,SoundManagerあたりを。要するにシーケンス以外の全部のクラスを。

2011-01-29 15:17:04
oracle @mr0916

一応Image,soundManagerあたりはまだ理解が足りてないので手動コピペします。あとは適当に。

2011-01-29 15:17:52
oracle @mr0916

と、その前にVSの設定。ここらへんが毎回面倒なのですが仕方ないです。

2011-01-29 15:25:28
oracle @mr0916

シーケンスとはタイトル画面からゲーム画面に移るまでのゲームの処理に関する処理、だそうです。

2011-01-29 20:10:44
oracle @mr0916

シーケンスはこんな感じになります。爆弾人を流用可能です。 http://twitpic.com/3ugsjk

2011-01-29 20:11:01
拡大
oracle @mr0916

ということで思いっきり爆弾人を流用します。コピペ万歳。

2011-01-29 20:12:40
oracle @mr0916

とりあえずさっさとタイトルだけ作ることにします。

2011-01-29 20:20:30
oracle @mr0916

出来た。センスの無さは気にしてはならない http://twitpic.com/3uh0ow

2011-01-29 20:38:04
拡大
oracle @mr0916

と、いうことで他のシーケンスも作っていきます。ゲーム画面ではまぁkillコマンドを打ち込んだら即死でいいのではないでしょうか

2011-01-29 20:39:19
oracle @mr0916

シーケンスだけ先に作るのは重要です。シーケンスだけ先に作ってしまえば「お前このシーケンスを実装な」と分業が可能になります。できたもの同士を結合するよりはもっとマシな方法です。

2011-01-29 20:40:31
oracle @mr0916

分業するときは「自分の責任はどこからどこまでか」を明確にしておく必要があります。そこら辺は一回集団作業してもらえれば実感してもらえるものと。

2011-01-29 20:43:24
oracle @mr0916

まぁ偉そうなこと言っていますが多分私もできません。世の中そんなものです。

2011-01-29 20:44:02
oracle @mr0916

シーケンス流用で苦戦中。さて。何もしないState作ったほうが良さげか。

2011-01-29 21:21:20
oracle @mr0916

シーケンス制御多分うまくいきました。絵じゃわからないですが。 http://twitpic.com/3uhpkp

2011-01-29 21:55:58
拡大
oracle @mr0916

長かったですがここからようやくゲーム本体です。ちなみにゲームが大規模であればあるほどこういうどうでも良い作業が多いみたいです。

2011-01-29 22:00:05
oracle @mr0916

どうでもいい、というのはゲームそのものの面白さに関わっていない、という意味で。こういうのも重要なんですがね。

2011-01-29 22:00:35
oracle @mr0916

しかしいい時間だな。今日はここまで、というのも手かもしれない。やるけど。

2011-01-29 22:02:23
oracle @mr0916

もう流用するものはことごとく流用したいのでDynamicObject/StaticObject方式で行きます。

2011-01-29 22:04:14
oracle @mr0916

マイルストーンとしては自機の表示→自機の動き→敵の表示→玉の表示→衝突判定→敵の動き→障害物の設置…という形になると思います。

2011-01-29 22:07:20
oracle @mr0916

こんな絵を書いてみる。2段目はアニメーションのため空けてあるが多分使うことはない(白目 http://twitpic.com/3uigj6

2011-01-29 23:15:17
拡大