我正在尝试解决一个架构问题,但我想找到最合适的方法。
我有游戏场景 GameLayer.h,这是我在这种情况下的看法。我也有我试图成为控制器的 GameEngine 类。我有从 CCNode 派生的自定义 Egg 类,以及通过 Egg 类中的调度实现的一些计时器逻辑。我通过 addChild 方法在游戏场景中添加了许多 Egg 对象。所以GameEngine.m导入GameLayer.h,GameLayer.m导入Egg.h
在每个 Egg 中的计时器用完后,我想收到通知,即执行一些操作、增加分数等。问题是实现这种情况的最佳方法是什么。我也想遵守 MVC 规则我想到的快速解决方案是
- 在 Egg 类中包含 Gamelayer.h 并在其中调用一些更新方法。更新视图(自我)并通知 GameEngine 保存新分数。
- 在 Egg 类中包含 Gamelayer.h 并在其中调用一些更新方法。在更新方法中调用另一个更新方法,该方法现在在 GameEngine.h 中,现在来自 GameEngine 保存分数,并更新 Gamelayer(视图)
- 实施 KVO。问题是我以前从未做过,我不知道观察者应该是 GameLayer 还是 GameEngine
请帮助,任何例子表示赞赏