有限状态机控制GUI

时间:2018-10-19 10:42:46

标签: design-patterns fsm

我已经在自己的GUI系统(使用Java)上工作了几个月。我创建了一个基于回合的游戏,事件只能由玩家或AI依次触发。我创建了一个图形,其中包含包含 grosso modo 屏幕组件的单元格(例如,滚动带有提示的文本,图像,循环动画,有界动画)。单元格之间通过键码链接在一起。运行得很好,我以为我有一个不错的主意,但是网上没有答案,让我觉得我做错了。在纸面上,这很棒,因为除非玩家做某事,否则它使用的CPU几乎为零。 br /> 那么有人可以给我我想要做的名字吗(如果真的有,我真的希望如此)?我问我的老师,没有人能帮助我。

1 个答案:

答案 0 :(得分:1)

响应用户交互或其他外部事件而工作的想法被称为事件驱动编程(https://en.wikipedia.org/wiki/Event-driven_programming),并且是图形应用程序(尤其是游戏)的标准。

在UI线程中做所有工作将导致事情仅顺序发生。如果您需要做的所有工作都可以在很短的时间内完成,而不会对用户与应用程序交互的能力产生负面影响或对其他流程产生负面影响,那么可以。通常,应用程序会像这样启动单线程,并且只有在您遇到较大的工作负载时才会升级到多线程应用程序。

也就是说,我总是会在游戏中至少使用两个线程:一个用于更新UI并接收初始用户输入,另外一个用于实际处理用户输入和其他自主游戏事件的线程。 / p>