
- 作者: いたのくまんぼう,大槻有一郎
- 出版社/メーカー: エムディエヌコーポレーション
- 発売日: 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 - 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 + Touch() : void } OrbTouchHandler --> Score.ScoreManager OrbTouchHandler --> Score.ScoreDisplayer OrbTouchHandler --> OrbDeleter OrbTouchHandler --> OrbsManager } namespace Score{ class ScoreDisplayer{ + scoreManager : GameObject - Start() : void ~ RefreshScoreText() : void } class ScoreManager{ - score : int - nextScore : int ~ AddScore(int) : int ~ GetScore() : int ~ GetNextScore() : int } ScoreDisplayer --> ScoreManager } @enduml
GitHub
実行結果
クラス図
感想
雰囲気でクラス図書いてみた。
そんなに理解はできてないけど、確かに見通しはよくなった気がする。
書き方が正しいかは知らない。
…またブログが長くなってしまった…。
カロリーメイトください。
参考
tsubakit1.hateblo.jp
プレハブからシーン内のオブジェクトどうやって参照するのかなーと悩んでたら、プレハブを使わないという方法があった。
親オブジェクトが非アクティブなオブジェクトでもInstantiateできるんだね。
これもなんとなく裏技っぽいけど…。
BGM
I SING, I SAY / LITTLE www.youtube.com