2014-04-02 3 views

답변

2

잘 스테이지의 뷰포트를 설정하는 방법에 따라 다릅니다.

resize() - 메서드 내에서 무대 뷰포트가 stage.setViewport(16,10,false)으로 설정되어 있습니다. 이 방법을 사용하면 화면 왼쪽 하단에 (0,0)에서 오른쪽 상단 모서리에 (16,10)이 표시됩니다 ...

너비가 8 인 액터를 만드는 경우 높이 = 5이면 항상 화면 너비의 절반이고 화면 높이의 절반은 커집니다.

물론 위 예제는 크기를 조정할 때 화면이 왜곡 될 것입니다 ... setViewport(16,10,true); 이렇게하면 가로 세로 비율을 유지할 수 있지만 크기 조정 내에서 일부 액터의 크기를 조정하거나 위치를 변경해야 할 수도 있습니다) 방법, 예. 화면 오른쪽 가장자리에 표시됩니다.

다른 방법은 뷰포트를 화면의 픽셀과 동일한 좌표계로 설정하는 것입니다 ((resize (...) - 메서드 내에서). 이렇게하면 스테이지 좌표계의 한 단위가 화면의 한 픽셀과 같습니다.

이렇게하면 뷰포트를 설정 한 후 크기 조정() 메소드 배우의 크기를 조정해야합니다 : 항상 할 것이다 이렇게

actor.setSize(0.2f*stage.getWidth(), 0.2f*stage.getWidth() * actor.getHeight()/actor.getWidth()): 

배우가 화면 폭 정확히 오분하고 있습니다 높이가 맞아서 왜곡되지 않습니다. 당신이 Viewport 클래스를 볼 수도 최신 버전 (나이틀리)를 사용하는 경우

희망이

2

... 조금 도움이됩니다.
이 수업은 당신이 찾고있는 수업입니다. 1600 * 900px 모니터가 있고 을 설정하면 Viewport의 모든 광고 단위가 Screen에서 100 픽셀이됩니다.
StageViewport을 16 * 9로 설정하면 Actor의 크기가 1 * 100 * 100px가됩니다. 800 * 450px 모니터를 사용하는 경우 50 * 50px 크기가됩니다.

  • StretchViewport :
    또한 다른 Viewport 종류가 있습니다 귀하의 Virtual Viewport은 전체 Screen을 채우기 위해 뻗어됩니다. 따라서 1600 * 900 모니터와 Virtual Viewport (16/10) 인 경우 1x1 Actor은 100px 너비이지만 90px 만 커집니다. 따라서 가로 세로 비율은 더 이상 동일하지 않습니다.
  • FitViewport : Virtual Viewport의 가로 세로 비율이 다른 경우 Screen은 검은 색 막대로 채워집니다. 그래서 1600 * 900 Screen에 16/10 가상 뷰포트가있는 경우 화면의 양면에 80px 너비의 괄호가 검은 색이됩니다 ((virtualWidth/wirtualHeight) * realHeight = realWidth, physicalWidth - realWidth = blackWidth, 양쪽에 센터가 blackWidth/2 인 게임이 있음). 가로 세로 비율을 유지합니다.

기타도 있지만 가장 중요한 2 imho입니다. 연결된 article에 대한 자세한 내용을 볼 수 있습니다.
최신 유흥을 사용하지 않는 경우 카메라를 사용해야합니다. OrthographicCamera의 생성자는 뷰포트의 너비와 높이를 사용합니다. 뷰포트의 경우와 같습니다. 차이점은 자동으로 "StretchViewport"이므로 this tutorial과 같이 glViewport를 수동으로 설정해야한다는 것입니다.

내가 도울 수 있기를 바랍니다.

관련 문제