2012-06-06 315 views
1

我读this文章使用在游戏开发MVC设计模式,我很乐意给它一个去,但我对如何动态地创建MVC对象有点困惑。在文章中他们正在谈论射击游戏的创作,但我不明白的是一名士兵如何投掷手榴弹。士兵模型很容易创建一个手榴弹模型,但是如果没有士兵模型必须知道手榴弹mvc的视图和控制器,视图和控制器将如何建立?动态创建MVC对象

回答

1

恕我直言,我觉得你采取了错误的方式..

每场比赛有一个板或地图。
您的地图“模型”应该是创作的管弦乐队。

所以如果一个士兵投掷手榴弹:
1.你的ui-controller(或者solider控制器)发射一个投掷手榴弹的事件。
2.您的地图模型获取该事件并创建抛出手榴弹的模型。
3.当榴弹飞行应该收到从地图关于逝去等。
不久把障碍物信息 - 地图是地图上所有可见对象的乐团。
关于该视图被描述为“EntityRepresentation”或在我的文字映射中的文章通知。
它不是一个嵌套的MVC模式,因为您期望在富客户端应用程序中找到它。 祝你好运! :)

+0

文章的作者是一种足以在几封电子邮件是如何工作的解释,和你说的是完全正确的。 “'在我们的代码,当实体加入到了EntityManager的RepresentationManager得到通知(也可能是对EntityManager的一个通用的听众)。然后它创建EntityRepresentation。 因为你会使用工厂模式。喜欢的东西: 地图= {{ “实体”, “EntityRep”},{ “EntityA”, “EntityARep”}, ... } RepresentationManager :: OnEntityAdded(实体* E) { 串rep_type = map [e-> GetType()]; EntityRep *代表=出厂>创建(rep_type) ... }'” – Joe