현재 저는 직교 카메라를 사용하고 있습니다. 게임에 들어가기 전에 먼저 화면 크기를 수정하고 싶습니다. 현재 800x480으로 설정된 화면 크기가 있습니다. 다른 장치 및 화면 크기에서 제대로 작동합니까? 지금 가지고있는 것은 스플래시 화면과 게임 화면뿐입니다. 이를 달성하기 위해 어떤 코드 라인을 추가해야합니까?LibGDX - 모든 화면 해상도에서 내 게임을 어떻게 만드나요?
답변
카메라에 고정 너비를 지정하면 게임에서 안정적으로 작업 할 수있는 고정 된 단일 치수가 제공되므로 완벽하게 정상입니다. 이는 카메라가 화면 좌표가있는 일대일 좌표가 아닌 월드 좌표를 정의하는 데 사용되기 때문에 효과가 있습니다.
문제는 고정 카메라 높이에서 비롯된 것입니다. 고정 된 높이를 사용하면 장치 화면의 종횡비에 따라 화면이 늘어나거나 짧아집니다. 다른 종횡비를 고려하려면 카메라 높이 (현재 480)에 표시 비율을 곱해야합니다. 너비를 높이로 나눔으로써 화면 비율을 얻을 수 있습니다.
코멘트에 BennX에 의해 지적float width = Gdx.graphics.getWidth();
float height = Gdx.graphics.getHeight();
OrthographicCamera camera = new OrthographicCamera(800, 480 * (height/width));
이 LibGDX 방금 다른 방법으로, 위와 같이 매우 같은 일을 할 수있는 뷰포트 소개 :이 같이 보일 것입니다. 위에 요약 한 것과 같은 효과를 얻으려면 뷰포트 만 사용하면 ExtendViewport
을 사용합니다. 이것이하는 일은 한 방향으로 세계 크기를 유지하면서 다른 방향으로 세계 크기를 늘리는 것입니다. 따라서 세계는 처음에는 화면을 채우도록 확장되며 가로 세로 비율을 유지하면서 짧은 치수가 확장됩니다. 뷰포트의 유형을 만들려면,이 같이 보일 것입니다 :
OrthographicCamera camera = new OrthographicCamera(800, 480);
ExtendViewport viewport = new ExtendViewport(800, 480, camera);
가 뷰포트 위의 뷰포트 후 동일합니다 (800)의 최소 폭이 값의 480 분의 최소 높이를해야합니다 다른 하나는 화면의 종횡비에 따라 변경됩니다. 더 좁은 스크린은 더 많은 수직 공간을 가지지 만 더 넓은 스크린은 더 많은 수평 공간을 가질 것입니다. 뷰포트에 대한 자세한 내용은 LibGDX wiki 페이지 here을 방문하십시오.
나는 그 좋은 해결책이라고 생각하지 않는다. Libgdx는 4 개월 전과 같은 모든 문제를 해결하기 위해 뷰포트를 구현했습니다. https://github.com/libgdx/libgdx/wiki/Viewports – BennX
@BennX 머리를 주셔서 감사합니다. 여전히 뷰포트가없는 약간 오래된 버전의 엔진을 사용하고 있으므로이 솔루션을 알지 못했습니다. 두 가지 해결책을 모두 반영하여 답변을 업데이트했습니다. – MCeley
@Mceley 응용 프로그램의 모든 화면에이 코드 줄을 적용해야합니까? – Dakota
아래의 접근법을 사용하고 있으며 거의 모든 화면 크기에서 무시할 수있는 작은 스케일링 문제가 있습니다.
나는 항상 화면 크기 여기 1920.0x1080.0
ScreenViewport screenViewport=new ScreenViewport(camera);
screenViewport.setUnitsPerPixel(Math.min(1920.0f/Gdx.graphics.getWidth(),1080.0f/Gdx.graphics.getHeight()));
당신이 Math.min() 또는 Math.max()에서 당신의 접근 방식을 설정할 수 있습니다위한 그래픽 이미지를 사용합니다.
그것은
Device screen-size Math.max() Math.max()
800.0x480.0 1800.0x1080.0 1920.0x1152.0
1920.0x1080.0 1920.0x1080.0 1920.0x1080.0
2048.0x1440.0 1536.0x1080.0 1920.0x1350.0
1080.0 * 1920.0에 참고 근처에 카메라 뷰 포트의 크기가 발생합니다 : 항상 게임 UI 화면의 설정 위치에 대한 camera.viewportWidth 및 camera.viewportHeight를 사용합니다.
- 1. 모든 화면 해상도에서 ASP 페이지를 지원하는 방법
- 2. 모든 화면 해상도에서 div를 배치하는 방법
- 3. 모든 화면 해상도에서 세로 맞춤이 작동하지 않습니다.
- 4. 모든 화면 해상도에서 동일한 위치에있는 이미지
- 5. SVG 다각형을 모든 화면 해상도에서 완전히 늘리려면 어떻게 설정합니까?
- 6. 내 800 * 600 게임을 모든 화면 해상도에 맞추는 방법?
- 7. 내 게임을 어떻게 재설정합니까?
- 8. 다른 화면 크기로 libgdx 게임을 설정하는 방법은 무엇입니까?
- 9. 어떻게 이클립스에서 안드로이드 용 측면 스크롤 플랫폼 게임을 만드나요?
- 10. Libgdx : 화면 크기 조정 및 ClickListener (libgdx)
- 11. LibGDX 게임을 애플릿으로 내보내기위한 설명
- 12. 화면 해상도에서 글꼴 크기 조정
- 13. Box2D Libgdx 검정색 화면
- 14. libgdx 게임을 시작하는 java.lang.ExceptionInInitializerError가 발생했습니다.
- 15. libgdx 게임을 "태블릿 용으로 설계"
- 16. Libgdx 여러 화면
- 17. Libgdx. 화면 구성
- 18. Libgdx 화면 내 장면 내에서 글꼴 그리기
- 19. 안드로이드는 모든 화면 크기와 해상도에서 동일한 비율을 유지합니다.
- 20. 왜 타일을 사용하여 내 libgdx 게임을 가로 지르는 선이 있습니까?
- 21. 모든 화면 해상도에서 부트 스트랩 컨테이너 - 유체가 동일합니다.
- 22. 모든 화면 해상도에서 웹 사이트가 올바르게 맞지 않습니다.
- 23. Libgdx 1.0.0 무대 전체 화면 android
- 24. 모든 화면 해상도에서 반응 형 디자인을 테스트하는 방법은 무엇입니까?
- 25. 미디어 쿼리를 쓰지 않고도 모든 화면 해상도에서 콘텐츠를 조정해야합니다.
- 26. 모든 화면 해상도에서 backround 중간 이미지의 가운데 div
- 27. 버튼마다 하나의 치아를 클릭하십시오. 모든 화면 해상도에서 작동하는 레이아웃을 만드십시오.
- 28. Libgdx - gdx.video 빈 화면
- 29. LibGdx, Box2d의 해상도 - 화면 크기에 따라 비율을 유지하십시오.
- 30. 일단 사용자가 종료하면 내 게임을 다시 시작하는 방법 (Libgdx)
네이티브 avd 또는 genymotion과 같은 에뮬레이터를 사용하여 다양한 배열을 테스트합니다. libgdx 작업을 많이 해본 적은 없지만 그것이 보통 해상도를 테스트하는 방법입니다. – zgc7009
뷰포트에 관한 libgdx의 위키를 살펴보십시오. 나는 당신이 더 나은 해결책을 찾을 수있을 거라 생각합니다! https://github.com/libgdx/libgdx/wiki/Viewports – BennX