グループT †
企画 †
- タイトル:ダブルラケット
- 2人で協力して遊ぶブロック崩しのゲーム。
- ラケットが2枚あり、2人のプレーヤーがそれぞれのラケットを別々に操作してブロックを崩していく。
- すべてのブロックを消すとそのシーンはクリアとなり、次のシーンに進む。
- 特定のブロックを消すとパワーアップアイテムが落ちてきて、それを拾うと一定時間だけ特殊機能が発動する。
- ボールを下に逃すとボールが1つ減り、ボールがなくなるとゲームオーバー。
外部仕様 †
画面のイメージは以下の通り。

- ゲームの進行について
- アプリを起動するとデモモードとなる。
- デモモードでスペースキーを押すとゲーム開始。
- 開始直後は、プレーヤー1のラケットにボールがくっついている状態で、もう一度スペースキーを押すとボールが動き始める。
- プレーヤー1はZとXキーで、プレーヤー2には左右の矢印キーでラケットを左右に移動することができる。
- ボールを後ろに逃すとボールが1つ減り、開始直後の状態に戻る。
- ボールがなくなるとデモモードに戻る。
- ボールの移動角度について
- ボールは原則として直進する。
- 壁やラケット、ブロックに当たると完全弾性衝突して跳ね返る。
- ラケットに当たった場所によって跳ね返る角度が変わる。
- メッセージについて
- ゲーム中、随所にメッセージが登場する。
- ゲーム開始時
- パワーアップ時
- ボールロスト時
- ゲームオーバー時
- シーンクリア時
- メッセージの種類
- スライド型:右や下から現れ、左や上に消える
- ズーム型:特定の場所に縮小しながら現れ消える
- アイテムについて
- 特定のブロックを消すとアイテムが落ちてくる。
- そのアイテムを取ると何かが起こる。
- 起こること:
- ボールが増える
- 一定時間ラケットが伸びる
- 一定時間ラケットが縮む
- 一定時間ボールの速度が上がる
- 一定時間ボールの速度が下がる
- 一定時間ビームが打てるようになる
- アイテムは種類によって色が違う。
- 何かわからない場合もある。
- ブロックの硬さについて
- 硬いブロックがあり、何度か当てないと消えない。
- 硬さは色でわかる。(当たると色が変わる)
- シーンによって決まっている。
- シーンについて
- ゲーム開始直後はシーン1が表示される。
- シーンによってブロックの配置、アイテムの場所等が決まっている。
- どこかにデータを持つ。
内部仕様 †
抽出したオブジェクトは以下の通り。
- ゲーム
- ボール
- ラケット
- ブロック
- シーン
- カプセル
- メッセージ
- アニメーター
- モーショナー
- 衝突判定者
- コリジョナー
以下、各オブジェクトについての詳細を述べる。
ゲーム †
- ゲームの全体を制御するためのオブジェクト。
- 描画領域としてのキャンバスである。
- 全体の流れを制御するためのスレッドを持つ。
- 登場する他のオブジェクトを持つ。
モーショナー †
- 動くオブジェクト。
- アニメーターのよって保持され、固有のタイミングと優先度で動かされる。
- 不要になればアニメーターから削除され、画面から消えるように、移動後に不要かどうかを返す。
アニメーター †
- モーショナーを動かすオブジェクト。
- モーショナーを追加することができる。
- 追加されたモーショナーは動作を行い、不要になれば削除される。
- タイミングを同期するため、独自のスレッドではなくゲームオブジェクトから制御される。
- 描画の優先度の段階を持つ。(生成時に指定する)
コリジョナー †
- 衝突するオブジェクト。
- 互いに衝突判定ができる。
- 衝突時に通知を受け取る。
- 衝突可能かどうかの判断を行う。(一定時間は衝突しない、などへの対応)
衝突判定者 †
- コリジョナーのリスト2つの衝突判定を行う。
- タイミングを同期するため、独自のスレッドではなくゲームオブジェクトから制御される。
ボール †
- モーショナーであり、コリジョナーでもある。
- 小さい円で表示される。
- ラケットで跳ね返る。
- 左右と上の壁でも跳ね返る。
- 下の壁に当たると1つ減る。
- ブロックに当たると、ブロックが変化する。
ラケット †
- モーショナーであり、コリジョナーでもある。
- 長方形で表示される。
- ボールと当たると跳ね返す。
- ブロックとは衝突しない。
- カプセルと当たると、ラケットやボール等が変化する。
ブロック †
- コリジョナーである。
- 長方形で表示される。
- ボールと当たると変化する。
- ブロックは種類に応じて派生クラス(ブロックA、ブロックBなど)がある。
シーン †
- ブロックの配置等の情報を持つ。
- テキスト情報で表現されたファイルを読み込む。
カプセル †
- モーショナーであり、コリジョナーでもある。
- 楕円で表示される。
- 特定のブロックが消える現れ、下に移動する。
- ラケットで取るとラケットやボール等が変化する。
メッセージ †
- モーショナーである。
- ゲームの随所でメッセージを表示するために使用される。
- スライドメッセージとズームメッセージという2つの派生クラスがある。
- アニメータに追加され、メッセージの表示が終わると削除される。
処理の流れ †
大まかな処理の流れは次のようになる。

この中には、細かい処理は記述してない。
細かい処理としては、
- ラケットの移動
- カプセル取得後の処理
- 衝突後の処理
などが考えられる。
詳細仕様 †
実装 †
テスト †
Javaセミナー2014