2013-12-08 2 views
2

보드 게임에 scene2d를 사용하고 있습니다. 보드를 확대/축소하고 화면의 할당 된 사각형 부분 내에서 움직일 수있게하고 나머지는 동일하게 유지하기를 원합니다.libgdx 줌/내면 드래그

보드 용으로 별도의 스테이지를 사용하려고했지만 뷰포트 및 카메라를 올바르게 초기화하는 방법을 찾지 못했습니다.

Screen.resize(int width, int height)에서 다음 코드를 테스트했지만 boardStage가 세로로 늘어나고 확대 된 경우 (여기처럼) 전체 화면이 채워집니다.

hudStage.setViewport(8, 12, true, 0, 12, width, height); 
boardStage.setViewport(8, 8, true, 0, 10, width, width); 

OrthographicCamera cam = (OrthographicCamera) boardStage.getCamera(); 
cam.zoom =.5f; 

올바른 방법은 무엇입니까?

답변

2

우리는 보드 게임과 유사한 확대/축소를 구현했습니다.

  • scissorStack 번째 카메라 렌더링 영역을 클립하는 데 사용된다 https://play.google.com/store/apps/details?id=net.peakgames.mobile.rummi.android

    우리는 확대 된 제 2 카메라를 사용한다.

  • 두 번째 카메라는 보드에 터치/드래그가있을 때만 사용할 수 있습니다.
  • 사용자가 보드에서 드래그 할 때 카메라 위치가 변경됩니다. 나는 확대 필요 없었다 경우이 도움이

희망은 ..

+0

감사합니다. 이것은가는 길과 같습니다. 이 점을 정확히 이해하면 calculateScissors의 clipBounds 매개 변수는 스테이지 좌표를 사용하지만 화면 좌표는 사용하지 않습니다. 즉, 카메라가 이동하거나 확대/축소 될 때마다 clipBounds 영역을 다시 계산해야합니다. –

+0

네, 그게 우리가하는 일입니다. – ilkinulas

0

새로운 스테이지 대신에 scene2d ScrollPane을 사용하고 싶습니다. 나는 이것으로 확대/축소를 어떻게 할 것인지 잘 모르겠지만 스케일링이 효과가 있다고 생각합니다.

+0

, 이것은 좋은 해결책처럼 보이지만 줌은 일을 복잡하게 할 수있다. –