2014-06-13 4 views
1

두 개의 3D Libgdx 프로젝트가 있습니다. SceneOneSceneTwo으로 전화를 걸자. 두 개의 버튼, ButtonA와 ButtonB가있는 Android의 레이아웃이 있다고 가정 해 보겠습니다. 내가 ButtonBsceneTwo의가 나타나 에는 sceneOne를 대체 클릭하면 내가 클릭 ButtonA에는 sceneOne 레이아웃에서 볼 수 있습니다. 그들은 서로 바꾼다.Android의 Libgdx에서 동적으로보기 변경

View SceneOne; 
View SceneTwo; 

void onButtonAClick() 
{ 
this.removeView(SceneTwo); 
RendererA renderer = new Renderer(); // my Libgdx class implementing ApplicationListener 
SceneOne = ((AndroidApplication)context).initializeForView(renderer, cfg); 
addView(SceneOne); 
} 


void onButtonBClick() 
{ 
this.removeView(SceneOne); 
RendererB renderer = new Renderer(); 
SceneTwo = ((AndroidApplication)context).initializeForView(renderer, cfg); 
addView(SceneTwo); 
} 

그것은 느린 있지만 작동 :

다음은 작동하지만 뷰 성능 저하를 초래 때마다 초기화 의사 코드입니다. 하지만 무슨 일이

View SceneOne; 
View SceneTwo; 

void onButtonAClick() 
{ 
this.removeView(SceneTwo); 
if (SceneOne == null) 
{ 
RendererA renderer = new Renderer(); // my Libgdx class implementing ApplicationListener 
SceneOne = ((AndroidApplication)context).initializeForView(renderer, cfg); 
} 
addView(SceneOne); 
} 


void onButtonBClick() 
{ 
this.removeView(SceneOne); 
if (SceneTwo == null) 
{ 
RendererB renderer = new Renderer(); 
SceneTwo = ((AndroidApplication)context).initializeForView(renderer, cfg); 
} 
addView(SceneTwo); 
} 

처럼 게으른 초기화를 변경할 때 작동이 중지 것은 :

  1. 에는 sceneOne가 표시됩니다.
  2. 나는 그것을 sceneTwo의처럼하지만 일부 유물에 보이는, 내가 화면에
  3. 뭔가 이상한 쇼 ButtonA을 클릭
  4. 나타 ButtonB
  5. sceneTwo의을 클릭합니다.
  6. 동일한 아티팩트 장면을 화면에 그대로 전환하려고 할 때.

왜 이런 일이 발생하며 어떻게 수정해야합니까? 감사 !

답변

0

나는 새 클래스를 AndroidFragmentApplication으로 사용하고 refraction을 유지하면서 단편을 전환 했으므로 전환 할 때마다 다시 초기화 할 필요가 없습니다.