
- 作者: いたのくまんぼう,大槻有一郎
- 出版社/メーカー: エムディエヌコーポレーション
- 発売日: 2017/08/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
序文
寒い。
寒暖差に体がついていけなくなりそう。
とりあえず、葛根湯で耐える。
進捗
- Chapter02 放置ゲームを作ろう
- 2-2 オーブを産み出そう
コード実装部分(一部)
(PlantUML)
@startuml TheTemple namespace Orb{ class OrbDeleter{ ~ Delete() : void } class OrbGenerateTimeManager{ + OrbsManager + OrbGenerator - lastOrbGenerateTime : DateTime + GENERATE_SPAN_SEC : const int - Start() : void - Update() : void } OrbGenerateTimeManager --> OrbsManager OrbGenerateTimeManager --> OrbGenerator class OrbGenerator{ + OrbsManager + orbPrefab : GameObject + OrbPositionRandomSetter + sprites : Sprite[] - Start() : void ~ GenerateOrb() : void } OrbGenerator --> OrbsManager OrbGenerator --> OrbPositionRandomSetter class OrbPositionRandomSetter{ + canvasGame : GameObject - minViewPosition : const Vector3 - maxViewPosition : const Vector3 ~ SetRandomPosition(GameObject) : void } class OrbsManager{ + MAX_ORB : const int - currentOrb : int - Start() : void ~ GetMaxOrb() : int ~ GetCurrentOrbMaxOrbDifference() : int ~ DeleteOrb() : void ~ GenerateOrb() : void } class OrbTouchHandler{ + ScoreManager + ScoreDisplayer + OrbDeleter + OrbsManager + TempleScaler + LevelUpChecker + Touch() : void } OrbTouchHandler --> Score.ScoreManager OrbTouchHandler --> Score.ScoreDisplayer OrbTouchHandler --> OrbDeleter OrbTouchHandler --> OrbsManager OrbTouchHandler --> Temple.TempleScaler OrbTouchHandler --> Score.LevelUpChecker class OrbData{ - orbKind : GameEnum.ORB_KIND + ScoreManager ~ GetScore() : int ~ SetOrbKind() : void ~ GetOrbKind() : GameEnum.ORB_KIND } OrbData --> Score.ScoreManager OrbData --> Enum.GameEnum } namespace Score{ class ScoreDisplayer{ + scoreManager : GameObject - Start() : void ~ RefreshScoreText() : void } class ScoreManager{ - score : int - level : int - nextScore : int - nextScores : int[] - isClearFlag : bool ~ GetMaxLevel() : int ~ AddScore(int) : int ~ GetLevel() : int ~ IsClear() : bool ~ GetScore() : int ~ NextLevel() : bool ~ GetNextScore() : int } ScoreDisplayer --> ScoreManager class LevelUpChecker{ + ScoreManager + EffectGenerator + TempleSpriteChanger ~ Check() : void } LevelUpChecker --> ScoreManager LevelUpChecker --> Effect.EffectGenerator LevelUpChecker --> Temple.TempleSpriteChanger } namespace Effect{ class EffectGenerator{ + ScoreManager + smokePrefab : GameObject + kusudamaPrefab : GameObject + canvasGame : GameObject ~ GenerateEffect() : void } EffectGenerator --> Score.ScoreManager } namespace Temple{ class TempleScaler{ + ScoreManager ~ Scale() : void } class TempleSpriteChanger{ + sprites : Sprite[] + imageComponent : Image ~ ChangeTempleSprite(int level) : void } } namespace Enum{ class GameEnum{ + ORB_KIND : enum } } @enduml
GitHub
実行結果
クラス図
感想
クラス図が大きくなってきたー。
今はできあがったコードからクラス図を書き直しているけど、本来はクラス図を書いてからプログラミングしないといけない。
システム全体の理解の手助けにはなるから、意味がないとはいわないけれど。
しかしUnityはGame Objectを経由して別のスクリプトにアクセスするっていうことがあるから、これを普通のオブジェクト指向プログラミングに適用するとまた別の問題が出てきそうだ。
自由度が高い=不安というのは人生と同じだ。(なんだそのまとめは)
カロリーメイトください。
BGM
GOOD MUSIC / 秋山羊子 www.youtube.com この発想はなか(ry