我正在开发一个简单的游戏,我试图将视图的更新与计算和游戏状态分开。
我试图制作一个Game
课程来处理动作和反应并更新游戏的逻辑状态。
这个类和View之间的交互实际上是一团糟,因为它们需要处理很多动作,并且每个动作都要查看必须更新的部分。
有时,对多个代码部分的视图更改都是相同的。
在XAML / C#中处理游戏状态的最佳方法是什么?或者这是处理游戏状态的好方法吗?
答案 0 :(得分:1)
尝试观察者模式
更改时更新模型。游戏的每个元素都应该在模型中表示为一个对象。视图应具有根据模型中的对象而更改的对象。这些是观察员。你将所有观察者注册到他们构建时所观察到的内容(我认为c#会调用这些代表,尽管你可以自由建立自己的观察系统)
当模型中的被观察对象改变状态时,它将自己标记为已经改变,并从注册它的视图中循环遍历每个观察者。它告诉他们关于变化的一切。观察者对象转身并从他们关心的观察对象中请求任何状态信息。
如果你自己从未亲手写过,那么你真的应该做一次。它需要很多神秘的东西。人们让它听起来比实际上更复杂。
答案 1 :(得分:0)
以下是我的所作所为:
让View更新自己,它必须每秒重绘 n 帧吗?视图将与模型交互,而不是相反。 View不关心模型是否更新,它只是从中获取所需的数据并相应地重新绘制每一帧。