グループT

企画

外部仕様

画面のイメージは以下の通り。

play-img1.png play-img2.png

内部仕様

抽出したオブジェクトは以下の通り。

以下、各オブジェクトについての詳細を述べる。

ゲーム

モーショナー

アニメーター

コリジョナー

衝突判定者

ボール

ラケット

ブロック

シーン

カプセル

メッセンジャー

処理の流れ

大まかな処理の流れは次のようになる。

flow1.png

この中には、細かい処理は記述してない。

細かい処理としては、

などが考えられる。

クラス図

初期クラス図は以下の通り。

class-diagram.png

Blockクラスの派生クラスはまだ書き込んでない。

詳細仕様

ここから、ゲームの詳細な内容の検討に入る。

シーンの定義について

シーンとは、ゲームの面のことである。

デモはシーンの一種であり、ボールが自動的に動く以外は通常のシーンと同様である。

シーンは、下記で述べるシーン定義属性を使ってテキストファイルによって記述される。()でデフォルト値がある属性は省略可能。

scene STR        ... シーンの名称。シーンの最初にスライドメッセージで表示される
left N(=10)      ... ブロック群と左端との距離
right N(=10)     ... ブロック群と右端との距離
top N(=40)       ... ブロック群と上端との距離
blocks_begin     ... ブロック群定義部の開始
AAZAAAAA         ... ブロック定義(A,B,C...はブロックの種類)
AAA..AAA         ... '.'はブロックがないことを意味する
AAAAYAAA
BXB..BBB
CCCCCCCC
blocks_end       ... ブロック群定義部の終了
height N(=20)    ... ブロックの高さ
brink STR        ... シーン中、常に点滅表示されるメッセージ
demo             ... デモ指定(なければシーン)
bg N(=FFFFFF)    ... 背景色のRGB各2桁の16進値
img STR(=null)   ... 背景画像(nullならば画像なし)

シーンの生成について

シーンは上記のシーン定義を読み込んだシーンオブジェクトを用いて行われる。

class Scene
---
String getString();
int getRows();
int getCols();
int getLeft();
int getRight();
int getTop();
boolean isDemo();
int getBG();
Image getImage();

シーン生成の処理はゲームオブジェクトが行う。

class Game
---
makeScene(Scene s);

シーンの生成は、現在のゲームの大きさに基づいて行われる。 まず、1つのブロックの幅を左右のマージンを差し引いて計算し、ブロック間の間隔を考慮して決める。 次にブロックの種類をシーンのブロック文字で決めて、そのブロックを生成しブロックリストに追加する。

ラケットの移動について

アニメータについて

衝突判定者について

メッセンジャーについて

実装

テスト

Javaセミナー2014


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS