2014-03-25 115 views
0

我在我的應用程序中有多個自定義Actor類型的組件。該應用程序是多人遊戲,因此這些演員的偵聽器在新信息到達時由單獨的線程通知。問題在於以下情況 - 當我使用類的setScreen()方法更改屏幕時,將加載屏幕,但尚未從網絡接收信息,並且存在延遲,之後屏幕信息將更新並且玩家看到相關信息。在從網絡收到所有必要信息之前,我怎樣才能停止顯示屏幕?從libGDX網絡加載資源

PS。我試圖通過while -loop在show方法中做到這一點,但無濟於事(類似AssetManager的更新方法)。通常如何做?

回答

2

當您沒有顯示信息時,請停止撥打setScreen()。無論線程或事件處理器如何處理接收信息,都應創建一個新的Runnable,它調用setScreen並將其發送到Application.postRunnable(),以便在下一個渲染之前運行。

您是否正在更新您的網絡線程中的演員?我不確定這是否安全。

+0

是的,它們在網絡線程中更新。只要它不繪製任何東西,它就會安全地接縫。感謝您的建議,我會嘗試。 –