我正在使用Windows Forms在c#中编写游戏。我选择这是一项有趣的任务,同时帮助我学习。我有8种形式的游戏工作流程。每种形式的设计和编码都很顺利。我有原型模型可以处理我想做的一切。
然而,游戏工作流程是循环的。随着游戏的进行,用户将被转移8轮。我想使用某种捆绑来传递表单之间我需要的东西。我很高兴阅读文档并弄清楚我是如何做到这一点的 - 也许是用字典对象。
我的问题更多的是关于策略,我有两个可能的选择。在工作流程中从一种形式转移到另一种形式时,您能否推荐我应该研究的优选路径(甚至是第三种改进的选项)?我在这里使用了nextForm和previousForm作为术语来引用用户即将离开的表单以及他们即将使用的表单。
创建nextForm类的新实例,并将表单之间的必需对象作为包传递。杀死previousForm。将在需要时重新创建实例。当青蛙从一个日志(然后下沉)跳到一个新创建的日志上时,我认为这是一个“Frogger”类比,它带有两个日志之间所需的任何公文包。
创建我需要的所有8个表单的单个实例。在表单之间传输用户(再次使用所需的对象包),但使用previousForm.Hide()和nextForm.Show()方法。在这里,我将使用来自previousForm的新数据刷新现有的nextForm实例,并使其显示,同时使nextForm消失,直到再次需要它为止。
答案 0 :(得分:0)
选项1比选项2更好。如果你不需要保留previousForm状态而不是我的建议不遵循选项1.因为它将不必要消耗内存。更多的用户可能没有来到previousForm,所以为什么它需要隐藏在背景上。