2014-03-25 2 views
0

내 앱에 액터 유형의 자체 작성 구성 요소가 여러 개 있습니다. 응용 프로그램은 멀티 플레이어이므로 이러한 액터에는 새 정보가 도착하면 별도의 스레드에서 알림을받는 리스너가 있습니다. 문제는 다음과 같습니다 - 메서드를 사용하여 Game 클래스의 화면을 변경하면 화면이로드되지만 네트워크에서 아직 정보가 수신되지 않고 지연이 발생하여 화면 정보가 업데이트되고 플레이어는 관련 정보를 봅니다. 네트워크에서 필요한 모든 정보가 수신 될 때까지 화면의 표시를 어떻게 중지 할 수 있습니까?libGDX의 네트워크에서 리소스를로드하는 중

추신. 나는 -loop을 통해 show 방법으로 시도했지만 아무런 소용이 없습니다 (업데이트 방법은 AssetManager과 비슷합니다). 그게 보통 어떻게 이루어 집니까?

답변

2

표시 정보가없는 경우 setScreen()을 호출하지 마십시오. 어떤 스레드 또는 이벤트 처리기가 정보 수신을 처리하더라도 setScreen을 호출하는 Runnable을 새로 작성하여 Application.postRunnable()으로 보내야 다음 렌더링 전에 실행됩니다.

네트워킹 스레드에서 배우를 업데이트 하시겠습니까? 안전한지 확실하지 않습니다.

+0

예, 네트워킹 스레드에서 업데이트됩니다. 그것은 무언가를 끌지 않는 한 안전합니다. 내가 그것을 시도 할 조언을 주셔서 감사합니다. –

관련 문제