前回まででゲームオーバーまでの処理をプログラミングすることができました。今回はこれまで作ったゲームをゲームらしく仕上げます。

まずキャラクターイメージがイマイチなので改善します。敵キャラをうまく作成することができればいいのですが、デザイン的なセンスがないのでこれを使います。

Enemyクラス内に静的メンバーを3つ追加します。そして自作メソッドGetBitmapsを追加します。GetBitmapsメソッドは画像ファイルから必要な部分を切り出してリストに格納しているだけです。

GetBitmapsメソッドはこれをコンストラクタ内で呼びます。ただし呼ぶのは最初のインスタンスを生成するときだけです。

敵を描画する処理を示します。

次にプレイヤーですが、Unityちゃんを使います。

ユニティちゃん 2DデータのなかにあるPNGファイルを使います。

プレイヤーを描画する処理を示します。

敵を倒したときに加点される点数を表示させます。

加点される点数は敵が落とされて死んだ場所の近くに表示されます。AdditionalPointsクラスは表示される点数と座標を管理するクラスです。加点表示は1秒間おこなわれます。そのためDrawメソッドのなかでLifeを減算しています。0になれば表示の必要なしということになります。

OnEnemyDeadメソッドのなかで点数を計算してAdditionalPointsオブジェクトをリストのなかに格納します。そしてDrawAdditionalPointsメソッドで加点表示をしています。またスコア表示用のフィールド変数の値も変更します。

これはスコアと残機数を表示させるメソッドです。

ゲームオーバーになったらゲームオーバー表示をします。

ゲームを再開するメソッドをつくります。ゲームオーバーになっているとき以外はなにもしません。

Form1クラスのOnPaintメソッドに描画関連メソッド呼び出しを追加します。