我在gamedev.stackexchange上发布了这个,但没有收到任何答案。希望有人能够帮助我。
我正在用c#开始我的第一场比赛。它是一个使用Windows窗体的基于文本的游戏。我正在集思广益,管理所有数据的最佳方法,并考虑在一个类(Game.cs)中包含与游戏实例相关的所有信息,并让该类负责跟踪任何重要的事情。 (注意:我不是在谈论有一个类或类似的项目)我认为这将使保存和加载更容易(只需保存并加载该类的实例),以及使开始新游戏更容易(目前我正在初始化初始化类中的所有变量。)
那么,这种方法是否会得到很好的实践(拥有游戏需要在单个班级中跟踪的所有内容)?如果没有,您是否还有其他建议处理和放置数据的方式?
答案 0 :(得分:5)
您已经接近自己MVC pattern了。
所以你要做的就是将这个Game.cs称为你的“模型”,它将包含与游戏状态相关的所有信息。然后你的表单的工作是在游戏状态被修改时显示游戏的当前状态。 (也许事件驱动的表单更新?)它还将连接你的播放器通过UI进入Controller的任何动作。 Controller的工作是提供采取行动的方法,并根据这些行动操纵游戏状态。例如。 MoveRight()将更新Game.Position.X。
然后你可以采取整个游戏状态并保存/加载,这是你的意图。所以我没有看到你想要做什么的问题。