Cocos2d iphone 在游戏中使用MVC有什么惯例吗?(有福利吗)

Cocos2d iphone 在游戏中使用MVC有什么惯例吗?(有福利吗),cocos2d-iphone,Cocos2d Iphone,游戏开发者在使用cocos2d时通常使用MVC吗?或者说,这种范式真的不适合这个框架吗 我来自Rails,对MVC的理解与苹果如何使用本地产品截然不同——但我想知道,即使使用cocos2d这样的框架,iOS开发人员是否也在尝试使用MVC模式。。。我还想了解一下使用MVC会是什么样子,会有什么好处 我目前正在从事的一个游戏是更加模块化的设计,我一直在尝试想象我如何用它来实现MVC,但它似乎只会以更多的文件、更多的代码结束,而且不值得这么做。。。所以我很想从社区中得到一些关于这个话题的反馈。回答你的

游戏开发者在使用cocos2d时通常使用MVC吗?或者说,这种范式真的不适合这个框架吗

我来自Rails,对MVC的理解与苹果如何使用本地产品截然不同——但我想知道,即使使用cocos2d这样的框架,iOS开发人员是否也在尝试使用MVC模式。。。我还想了解一下使用MVC会是什么样子,会有什么好处


我目前正在从事的一个游戏是更加模块化的设计,我一直在尝试想象我如何用它来实现MVC,但它似乎只会以更多的文件、更多的代码结束,而且不值得这么做。。。所以我很想从社区中得到一些关于这个话题的反馈。

回答你的第一个问题:没有。更多

MVC是一种很好的用户输入驱动程序设计,您希望将其与业务逻辑(模型)解耦。为了避免两者直接对话,您引入控制器作为两者之间的中介

但在游戏中情况就不同了。游戏在大部分时间里不会等待用户输入,模型通常是轻量级的(几个变量),但通常需要了解整个系统(与其他对象碰撞,AI检查其他对象正在做什么)

无论用户输入如何,游戏每一帧都会向前移动游戏状态(模型),并且每一帧都会渲染视图。用户输入更像是一个连续的事件流,特别是在动作游戏中。所以通常模型和视图常常紧密耦合,尽管大多数游戏开发人员至少试图定义两层之间的清晰边界。这也是对性能的折衷,因为(严格的)MVC会增加相当多的开销


与MVC不同,游戏中更常用的设计模式是。通常情况下,游戏对象基本相似,但在行为、能力、武器、生命值、豁免、速度等方面可能存在细微差异。这种行为不是硬编码,而是作为组件添加到游戏对象中,然后作用于对象本身。它与cocos2d的动作有些相似,但不同之处在于组件通常始终处于活动状态,可以禁用/暂停,并且不仅用于动画,还用于游戏逻辑(即通过盾牌组件减少传入伤害)。

想想看,MVC确实很好地应用于游戏引擎的设计,它通常是这样实现的,但很少被称为MVC。不幸的是,cocos2d并没有考虑MVC。