我正在寻找组织申请的一些建议。
当你有一个包含内容选择的主菜单时,你按下一个按钮,提取控制器有两个选择: a)更改当前显示主菜单的内容 b)创建一个新场景并将舞台切换到那个场景
你在用什么?有什么样的最佳实践吗?
目前我更喜欢a)因为我可以保留事物状态等等,但这是“干净”的方式吗?
答案 0 :(得分:0)
首先要考虑一些事项:
1)更改场景将取消链接您附加到其上的事件处理程序,并且可能是"状态栏"你也提到了。
2)Java是一种高度面向对象的语言,也意味着在不同的对象之间进行切换,并且在可能的情况下使用多态是一种很好的做法。
我的经验与事件处理程序有关,因为它们经常链接到场景,除非它们链接到特定节点(按钮),但可能还有其他类似的概念需要考虑。在我做的一个项目中,我在菜单,暂停,游戏和游戏之间进行了更改,而不是显示,但由于我主要使用相同的键并且鼠标几乎没有涉及太多,我意识到我没有从创建中获益单独的Scene
个对象的新事件处理程序。相反,我使用Scene.setRoot();
方法更改活动显示节点/窗格。
但是,如果你的处理方式差异很大,例如从带有按钮和文本字段的菜单进入FPS游戏,其中每个输入都有不同于菜单的效果,那么最好是不同覆盖两个不同的Scene对象中的事件处理程序,而是使用Stage.setScene();
方法,从而使处理程序行为多态*而不是在处理程序中具有另一组控制结构,以便CPU在每个框架中处理#39;不在菜单中。
*我知道当我说多态时我并不是指继承多态,但是在你可能想要更好的性能的情况下,这是我能想到描述避免额外运行时代码的最好方法。