ついにこのブログも800回更新を達成しました。パチパチパチ。ところが次に何をつくっていいかわからない。困っていたところ面白そうな動画をみつけました。

以下はネタ元の「フリスビーを犬に届けよ!」の動画です。「フリスビーを犬に届けよ!」はUnityでのゲーム開発を手助けするメディア「Unishar-ユニシャー」のさぎのみや氏作成のゲームのチュートリアルです。

フリスビーを犬に届けよ!の元ネタ

Unishar-ユニシャー【Unityでのゲーム開発を手助けするメディア】

さぎのみや氏のTwitter

さぎのみや氏の個人ブログ

今回はUnityを使わずにフリスビーを犬に届けよ!に似たゲームを作成しました。

それからいつもお世話になっているT.Umezawaさんにも ダメだし レビューしていただきました。

動画ばっかりベタベタ貼ってすみません。ではさっそく作成してみましょう。名前空間はFrisbeeとします。

Obstacleクラスを定義する

障害物の位置を格納するObstacleクラスを定義します。

以降は名前空間を省略して以下のように書きます。

コンストラクタを示します。

ブロックの中心のXY座標となるCenterX、CenterYプロパティを定義します。

ブロックの幅、高さをWidth、Heightプロパティとして定義します。またブロックの上下左右の座標がすぐにわかるようにLeft、Right、Top、Bottomプロパティも定義します。

IsInsideメソッドは引数で渡された座標がブロックの内部にあるかどうかを返します。

FrisbeeGameクラスを定義する

FrisbeeGameクラスを定義します。

以降は名前空間を省略して以下のように書きます。

定数

まず定数について定義している部分を示します。

プロパティ

各種プロパティを示します。Playerクラスの詳細は次回の記事で示します。

コンストラクタと初期化

コンストラクタと初期化の処理を示します。

コンストラクタのなかでPlayerオブジェクトを生成したあとInitメソッドを呼び出して障害物のリストとスタート地点、ゴール地点をつくります。

Initメソッドを示します。

ここではリソースからテキストファイルを読み込み、ゲームのためのフィールド(スタート地点とゴール地点と障害物)を生成しています。そのあとフリスビーをスタート地点に設置します。

ミス時に火花を発生させる

ミス時に表示される火花を発生させる処理を示します。

最初にSparkクラスを定義します。発生したあと更新処理がおこなわれるごとに座標を変化させるとともにLifeがデクリメントされていきます。0になったら火花は完全に消滅します。

火花を発生させる処理とLifeが0になっていないSparkオブジェクトのリストを取得する処理を示します。

ステージクリア時の処理

ステージクリア時に星を表示させます。そのための処理を示します。

星はSparkクラスを流用します。乱数を用いずに均等の間隔で放射状にひろがります。

ゲームスタート時と更新処理時の処理を示します。更新処理ではプレイヤーの更新処理と火花と星が存在する場合、その移動処理をおこなっています。