如何处理游戏流程?

时间:2014-05-21 06:45:57

标签: c# xaml windows-phone

我正在开发一个简单的游戏,我试图将视图的更新与计算和游戏状态分开。
我试图制作一个Game课程来处理动作和反应并更新游戏的逻辑状态。
这个类和View之间的交互实际上是一团糟,因为它们需要处理很多动作,并且每个动作都要查看必须更新的部分。

有时,对多个代码部分的视图更改都是相同的。

在XAML / C#中处理游戏状态的最佳方法是什么?或者这是处理游戏状态的好方法吗?

2 个答案:

答案 0 :(得分:1)

尝试观察者模式

更改时更新模型。游戏的每个元素都应该在模型中表示为一个对象。视图应具有根据模型中的对象而更改的对象。这些是观察员。你将所有观察者注册到他们构建时所观察到的内容(我认为c#会调用这些代表,尽管你可以自由建立自己的观察系统)

当模型中的被观察对象改变状态时,它将自己标记为已经改变,并从注册它的视图中循环遍历每个观察者。它告诉他们关于变化的一切。观察者对象转身并从他们关心的观察对象中请求任何状态信息。

如果你自己从未亲手写过,那么你真的应该做一次。它需要很多神秘的东西。人们让它听起来比实际上更复杂。

http://msdn.microsoft.com/en-us/library/ee817669.aspx

http://en.wikipedia.org/wiki/Observer_pattern

答案 1 :(得分:0)

以下是我的所作所为:

让View更新自己,它必须每秒重绘 n 帧吗?视图将与模型交互,而不是相反。 View不关心模型是否更新,它只是从中获取所需的数据并相应地重新绘制每一帧。