我最近了解到jMonkey只在一个单线程上执行,即其openGL渲染线程。然而,我无法完全理解它。我可以理解它在单个更新循环中执行所有更新和initialize()调用,但输入应独立于此更新循环,否则它将变成轮询机制。
- jMonkey应用程序启动时会发生什么?它需要完成三个任务:运行更新循环、一次运行app states的初始化方法、进行渲染并不断处理事件。它如何通过单个线程管理所有这些任务?
- 当我在另一个app state的initialize方法中添加一个新的app state时会发生什么?
- 在输入处理中,输入管理器会通知各种监听器有关事件的情况。例如onClick()等nifty callback事件是如何在同一渲染循环上处理的?
- 最后,这个listen-update-render循环以什么顺序运行,我们在哪里可以找到与之相关的代码?