大まかな要件とクラス図作成

次回作のざっくりとした要件が決まったのでクラス図を書いてみました。

 

---------やりたいこと---------

・いわゆるラン&ジャンプゲーム

・プレイヤーは手前から奥に自動で走る

・スワイプで左右の位置調整、タップでジャンプ

・プレイヤーの体力はHP制で敵や敵の攻撃に当たると減っていき0になるとゲームオーバー

・プレイヤーの足元には攻撃判定がありジャンプして踏めば敵を倒せる

・HP回復アイテムや一定時間スピードアップするアイテムを登場させる

・敵の配置はUnitychanShooterのスクリプトを流用してある程度ランダムに

・ステージの構成は固定にしてHierarchyから調整する

・ステージクリア時にクリアタイムや倒した敵の数に応じたスコアを表示させる。

-----------------------------------

 

クラス図

調べながら見よう見まねで書いたので、詳しい人いたら突っ込んでください。

実線はメソッドの利用、点線は変数の参照を表しています。

 

f:id:MakePuntRut:20181216000348j:plain

 

詳細

■Players

PlayerMoveはPlayerの移動関係、PlayerHealthはPlayerの体力、PlayerStateはPlayerの状態(Colliderの有効・無効化やAnimationの変遷)を管理する。

 

■Enemies

EnemyMoveとEnemyHealthとEnemyStateはPlayersと同様に移動と体力の管理。

EnemyActionはそれぞれの敵固有の行動を管理する。実際にどんな行動をするかはAssetStore漁りながら決めたいのでここでは深く考えず開発中に修正していく。

 

■Items

PlayerタグのついたColliderに触れたら該当クラスのメソッドを呼び出す形で実装する。

 

■GameManager

ScoreManagerがScoreの管理、GoalはPlayerがGoalオブジェクトに触れた時のふるまいを管理します。

 

■Stage

Stage上の障害物の動きを管理します。ここでは深く考えずAssetStoreを漁りながら(ry

 

 

細かい実装方法はまだ決めてませんが、各クラスの役割と関係さえはっきりさせとけば前回よりはマシだと思うのでそろそろ実装に入ろうかと思います。