2017-05-12 1 views
0

Android 앱을 개발하려고하는데 정말 불쾌한 문제를 발견했습니다.LibGDX ScalingViewport의 위치가 변경되지 않습니다.

"메인"뷰포트와 다른 뷰포트를 사용하여 특정 요소를 제어하기 위해 다른 스테이지를 사용하려고합니다. Scaling.none으로 Scaling 뷰포트를 사용하기 시작했습니다. Scaling.none은 내가 찾고있는 뷰포트에 가장 적합한 것처럼 보입니다. 문제는 내가 위치를 바꿀 때 움직이지 않는다는 것입니다! 화면의 중앙에 그냥 있습니다. 다음은 뷰포트의 컨스트럭터에서 사용하는 코드입니다.

viewport = new StretchViewport(720, 1280, cam); 
viewport.apply(); 
cam.position.set(cam.viewportWidth/2, cam.viewportHeight/2,0); 

secondaryViewport = new ScalingViewport(Scaling.none, 480, 421); 
secondaryViewport.setScreenPosition(240, 0); 

확대/축소 뷰포트를 이동할 수 없습니까?

편집 : 여기 내 렌더링() 방법 :

@Override 
public void render(SpriteBatch sb) { 
    cam.update(); 
    secondaryViewport.getCamera().update(); 
    sb.setProjectionMatrix(cam.combined); 
    Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); 
    sb.begin(); 
    sb.setColor(Color.WHITE); 
    sb.draw(bg, cam.position.x - cam.viewportWidth/2, 0, cam.viewportWidth, cam.viewportHeight); 
    sb.end(); 
    stage.getViewport().apply(); 
    stage.draw(); 
    stage.act(); 
    secondaryStage.getViewport().apply(); 
    secondaryStage.draw(); 
    secondaryStage.act(); 

} 

답변

0

좋아,이 솔루션은 내가 그것을 시도하고 그것은 여전히 ​​작동하지 않습니다

secondaryStage.getViewport().setScreenPosition(x, y); 
0

Viewport의 기본 카메라 위치함으로써 것은 secondaryViewport의 위치를 ​​변경 0,0,0

사용에서이 secondaryViewport.getCamera().position.set(100,100,0);이다. 이 문 당신이 당신의 StretchViewport에 사용되는 카메라는 다른 새로운 Camera을 만드는함으로써

secondaryViewport = new ScalingViewport(Scaling.none, 480, 421); 

.

+0

이었다! – vladutelu

+0

다른 뷰포트를 어떻게 사용하고 있습니까? – Aryan

+0

render() 메서드의 코드를 여기에 붙여 넣으시겠습니까? – vladutelu

관련 문제