cocos2d里面如何实现MVC(六)
本文将会比较简短。如果你对于前面几篇介绍cocos2d里面如何实现mvc有什么不清楚的地方,请跟我讲,这样我就可以补充地更详细一点。我(原作者)最近接了一些非常大的外包项目,所以,用来写博客的时间不是很多。在此,我简单地总结一下前面写的这些文章:
- 我们实现了Model,它可以帮助我们封装游戏的逻辑,这样可以使我们的关注点集中于游戏逻辑,而不是其它的(比如渲染)
- 我们实现了Controller来处理用户交互,同时相应地更新model。
- 我们实现了View,而它的职责仅仅是负责显示model的状态。
它们三者之间的交互关系如下:
- Controller负责初始化Model和View
- View负责显示Model
- View负责接收用户touch事件,然后传递给controller来处理。
- Controller实现view的代理,同时可以操作Model。
- model则执行一些游戏逻辑处理并通知view它的状态改变。
- View根据model的当前状态来更新它里面的所有对象,比如精灵。
留几个开放性的问题:
- 如果你想使用NSUodoManager来实现“撤销”功能,你会把该功能放在哪里呢?Model?Controller?View?
- 你会怎么保存当前场景的状态信息呢?
- 或者你还可以补充其它问题?
后记:本文已同步更新到cocos2d mvc这个系列里面去了。
如果你觉得本文章对你有所帮助,请您点一下旁边的“推荐”按钮,这样可以让更多的人看到,同时也会给我写作的动力,谢谢大家。