我正在使用计时器制作一个小游戏的小游戏。每秒出现一个对象,游戏持续10秒。如果我运行一个while循环10秒,我无法从控制器捕获任何输入并在视图中显示它。所以我已经创建了一个新进程,但是如果我按原样分叉,则run方法的优先级太高而其他方法没有机会运行。有一个更好的方法吗?
编辑:
我已经将run方法分配到49,并且控制器和视图工作,但只有当我将鼠标移动到视图上时才会工作。
答案 0 :(得分:1)
您可以派生进程,但是您希望通过常规窗口事件队列来处理它。尝试这样的事情:
tick
self doStuff.
self gameFinished ifFalse: [
[(Delay forSeconds: 1) wait.
[self tick] uiEventFor: self builder window] fork]
答案 1 :(得分:0)
E.g。对于每秒产生一个对象,你将在未来添加1秒的动作,并且在处理该动作时,它将在未来再次添加相同的动作1秒。
这将使您的游戏比我们尝试使用并发进程更具可预测性和可调试性。