【发布时间】:2015-03-14 23:29:18
【问题描述】:
我一直在阅读有关 MVC 的内容,并一直在尽我所能地遵循它,但有一件事不断出现。
视图可以看到模型对象吗?
我目前的游戏结构如下。
对象(模型) 场景(控制器) 精灵(视图)
目前我做以下事情。
场景创建一个 MapObject(model)。然后场景创建一个 MapSpriteNode(view),但使用 MapObject 对其进行初始化。 MapSpriteNode 需要绘制并使用信息来布局其视图和子视图。现在 MapSpriteNode 可以保留对该 MapObject 的引用,但无论如何都不允许更改 MapObject。这样,当在 MapSpriteNode 上调用 update 时,它可以看到 MapObject 上的脏切片索引等内容,并且可以更新其对应的 TileNode。
所以现在发生了这种情况
Sprite 被触摸并通知控制器 --> 控制器向模型报告交互 --> 模型相应地更新并标记脏索引
发生更新循环
Scene 调用 update 到 -> MapObject(任何其他需要随时间发生的更新) 场景调用 update 到 -> MapSpriteNode(查看是否有脏索引和更新) 场景调用 cleanup dirty to -> MapObject(因为渲染完成,脏索引被移除)
这还是在遵循 MVC 吗?
【问题讨论】:
标签: architecture design-patterns model-view-controller