2014-04-10 3 views
-1

방금 ​​LibGdx 프레임 워크를 시작했으며 이해가되지 않는 첫 번째 문제가 있습니다. 모바일 장치로 게임을 만들고 싶기 때문에 (대부분의 게임처럼) 대부분의 해상도에서 내 게임을 멋지게 보이게하고 싶습니다.LibGdx, Box2d의 해상도 - 화면 크기에 따라 비율을 유지하십시오.

일부 box2d 항목을 만들고 480x800 화면에서 테스트했습니다. 그것은 다음과 같습니다

enter image description here

그런 다음 나는 그것이 240 × 320 화면에 어떻게 보이는지 테스트했습니다, 그리고 그것은 매우 잘 보이지 않는다. 지면의 높이는 작아야하며 상자도 작아야합니다. 추가적으로 하나의 상자가 빠져 있습니다 (땅 밑).

음이 Box2D의 세계 .1 화소에서 잘하지 1m가 있다고한다 : 지금까지 수행했던 어떤

enter image description here

. 그래서 값 100으로 상수를 만들고이 값으로 모든 box2d 값 (정사영 카메라 포함)을 나눕니다. 240x320에서 그 상자를 어떻게 할 것인가는 작은 화면 (작은 화면 - 작은 세계 -> 상자 및 물건)로 유지되며, 고해상도에서는 세계도 비율로 표시됩니다 (더 큰 해상도 - 큰 세계 -> 상자 및 물건).

질문에 대한 이해를 바랍니다. 미리 감사드립니다.

+0

** 다음은 힌트 : ** 240 × 320 3 : 4, 480X800은 3 : 5, 당신의 3S는 폭이 괜찮아 보이지만 이후 일치하기 때문에 4와 5가 일치하지 않습니다. 240x320 크기가 하단과 상단에서 1/10로 잘라져 하단 상자가 보이지 않으며 상자가 올바르게 바닥에 있지 않은 것처럼 보입니다 (실제로는 상단 하늘이 보임) –

+0

밤의 집에서'ViewPort' 클래스를 본 적이 있습니까? 그것들은 당신이 모든 Screensize에 대한'Viewport'를 조정하도록 도울 수 있습니다. Ofc에는 항상 단점이 있습니다. - Viewport가 늘어나고, 종횡비가 다른 경우 게임이 스트레스를받을 수 있습니다. - 많은 게임에서 불공평 한 큰 화면에서 더 많은 세계를 볼 수 있습니다. - 당신은 종횡비를 조절하기 위해 검은 색 테두리가 있습니다. 공정하지만 어리석은 것처럼 보입니다 ... 그 중 하나를 선택하십시오. – Springrbua

답변

1

몇 가지 이유로 인해 Constatnts 클래스에 잘못된 변수가 포함되었습니다.

public static int V_WIDTH = Gdx.graphics.getWidth(); 
public static int V_HEIGHT = Gdx.graphics.getHeight(); 

물론 모든 측정이 잘못 되었기 때문에 이것은 잘못되었습니다. (예 : 480x800의 월드는 48x80 미터이고 240x320 디바이스의 플레이어는 24x32 미터입니다.)

게임 세계를 정의 할 때 고정 된 화면 해상도를 지정해야하며 UI를 설정해야합니다. 변수가 고정 된 크기이면 모든 해상도에서 월드 크기가 동일합니다.

I가 변수 위에 수정했습니다

public static int V_WIDTH = 480; 
public static int V_HEIGHT = 800; 

그리고 지금 실제로 작동합니다. 이에 따라 게임 세계의 크기가 조정됩니다.

enter image description here

작은 해상도 :

enter image description here

관련 문제