本文将会比较简短。如果你对于前面几篇介绍cocos2d-x里面如何实现mvc有什么不清楚的地方,请跟我讲,这样我就可以补充地更详细一点。在此,我简单地总结一下前面写的这些文章:
1 我们实现了Model,它可以帮助我们封装游戏的逻辑,这样可以使我们的关注点集中于游戏逻辑,而不是其它的(比如渲染)
2 我们实现了Controller来处理用户交互,同时相应地更新model。
3 我们实现了View,而它的职责仅仅是负责显示model的状态。
它们三者之间的交互关系如下:
4 Controller负责初始化Model和View
5 View负责显示Model
6 View负责接收用户touch事件,然后传递给controller来处理。
7 Controller实现view的代理,同时可以操作Model。
8 model则执行一些游戏逻辑处理并通知view它的状态改变。
9 View根据model的当前状态来更新它里面的所有对象,比如精灵。
留几个开放性的问题:
10 如果你想使用NSUodoManager来实现“撤销”功能,你会把该功能放在哪里呢?Model?Controller?View?
11 你会怎么保存当前场景的状态信息呢?
12 或者你还可以补充其它问题?