所以我试图创建一个基于文本的游戏,它的用户界面(而不是真正的基于文本的解析和所有有趣的东西)基本上是一个角色扮演游戏。为此,游戏有许多可能发生的不同事件(但不能保证会发生,也不能以任何整体顺序发生),我想知道最有效的编码方式。
目前,我的想法是创建一个名为 GameState 的静态类,其中包含其他信息,其中包含一个数组和一个枚举。为了对话或多选项事件选择,该数组可能是字节,其中 0 表示事件未发生,然后数字 1 - X 表示选择了 X 个可能的选项。像这样的东西:
public enum GameEvents{
Event 1,
Event 2,
Event 3 };
public static byte[] GameEventStates = new byte[Enum.GetNames(typeof(GameEvents)).Length];
所以在事件和东西中,我可以做这样的事情:
if(GameState.GameEventStates[GameState.GameEvents.Event2] == 1)
{
Stuff Here;
}
或者
GameState.GameEventStates[GameState.GameEvents.Event4] = 1;
(注意:对于严格意义上的“已看过”事件,未看过为 0,看过为 1)。
不过,这其中的一部分只是让人感到被迫,就像有一种我根本想不到的更优雅的方式。我不知道它会是什么,但它仍然允许我
A)在事件发生时可以全局访问它以更改值并允许检查它们的发生,
B) 随着游戏内容随着时间的推移而扩展,轻松添加更多事件,并且
C) 轻松将值保存到保存文件或从保存文件加载。
这真的是最好的方法吗?我是第一个承认我能想出的……“创造性”的方法,但对解决问题并不那么好。第二意见真的很感激。提前致谢。