有限状态机控制 GUI
Finite State Machine controlling GUI
我已经在我自己的 GUI 系统上工作了几个月(Java)。我创建了一款回合制游戏,事件只能由玩家或 AI 触发,顺序。我创建了一个图形,其中包含包含 grosso modo 屏幕组件(例如带有提示的滚动文本、图像、循环动画、有界动画)的单元格。细胞之间使用密钥代码相互链接。它工作得很好,我认为我有一个好主意但是没有来自网络的答案让我觉得我做错了什么,在纸面上,它很棒,因为除非玩家做某事,所以它使用几乎为零 CPU.
那么有人可以给我我想做的事情的名字吗(如果有的话,我真的希望如此)?我问我的老师没有人能帮助我。
根据用户交互或其他外部事件进行工作的想法被称为事件驱动编程 (https://en.wikipedia.org/wiki/Event-driven_programming),并且是图形应用程序(尤其是游戏)的标准。
在 UI 线程中完成所有工作会导致事情只按顺序发生。如果您需要做的所有工作都可以在短时间内完成,这样就不会对用户与应用程序交互的能力产生负面影响,也不会对其他进程产生负面影响,那么这是可以的。通常应用程序会像这样开始单线程,只有当您开始遇到更重的工作负载时才会升级到多线程应用程序。
就是说,我总是会为一个游戏至少使用两个线程:一个用于更新 UI 和接收初始用户输入,另一个线程用于实际处理用户输入和其他线程, 自主游戏事件。
我已经在我自己的 GUI 系统上工作了几个月(Java)。我创建了一款回合制游戏,事件只能由玩家或 AI 触发,顺序。我创建了一个图形,其中包含包含 grosso modo 屏幕组件(例如带有提示的滚动文本、图像、循环动画、有界动画)的单元格。细胞之间使用密钥代码相互链接。它工作得很好,我认为我有一个好主意但是没有来自网络的答案让我觉得我做错了什么,在纸面上,它很棒,因为除非玩家做某事,所以它使用几乎为零 CPU.
那么有人可以给我我想做的事情的名字吗(如果有的话,我真的希望如此)?我问我的老师没有人能帮助我。
根据用户交互或其他外部事件进行工作的想法被称为事件驱动编程 (https://en.wikipedia.org/wiki/Event-driven_programming),并且是图形应用程序(尤其是游戏)的标准。
在 UI 线程中完成所有工作会导致事情只按顺序发生。如果您需要做的所有工作都可以在短时间内完成,这样就不会对用户与应用程序交互的能力产生负面影响,也不会对其他进程产生负面影响,那么这是可以的。通常应用程序会像这样开始单线程,只有当您开始遇到更重的工作负载时才会升级到多线程应用程序。
就是说,我总是会为一个游戏至少使用两个线程:一个用于更新 UI 和接收初始用户输入,另一个线程用于实际处理用户输入和其他线程, 自主游戏事件。