我的应用中有多个Actor类型的自编组件。该应用程序是多人游戏,因此这些角色具有侦听器,当新信息到达时,这些侦听器由单独的线程通知。问题如下 - 当我使用setScreen()
类的Game
方法更改屏幕时,屏幕已加载,但尚未从网络收到信息,并且存在延迟,之后屏幕信息被更新并且玩家看到相关信息。如何从网络收到所有必需的信息,我该如何停止显示屏幕?
PS。我试图通过while
- show
方法循环来做到这一点,但无济于事(类似于AssetManager
的更新方法)。这通常是怎么做的?
答案 0 :(得分:2)
如果您没有显示信息,请停止致电setScreen()
。无论线程或事件处理器处理哪些信息都应该创建一个新的Runnable
来调用setScreen
并将其发送到Application.postRunnable()
,这样它就会在下一次渲染之前运行。
您是否正在更新网络线程中的演员?我不确定这是否安全。