cocos2d里面如何实现MVC(六)

分类栏目:cocos教程

233

本文将会比较简短。如果你对于前面几篇介绍cocos2d里面如何实现mvc有什么不清楚的地方,请跟我讲,这样我就可以补充地更详细一点。我(原作者)最近接了一些非常大的外包项目,所以,用来写博客的时间不是很多。在此,我简单地总结一下前面写的这些文章:

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