2014-01-07 1 views
1

너무 높은 이후 갤럭시 S4의 확인을 처리하는 방법 :그것이 내가 AndEngine이 튜토리얼 다음과 같이 시작하고 AndEngine RatioResolutionPolicy

http://www.matim-dev.com/full-game-tutorial---part-1.html

을하지만이 테스트를 위해 낮은 해상도의 장치를 사용하는 것처럼이 남자가 보인다, 저는 1920x1080 해상도의 갤럭시 S4를 사용하고 있습니다.

RatioResolutionPolicy에 대해 알아 봤지만 크기가 좋지 않은 경우처럼 내 S4에서 800x480을 사용하고 있어도 양면 (풍경)의 흰색 줄무늬가 2 개 있는데 다른 배경 화면을 포함해야합니까? 매우 높은 화면 해상도 장치의 경우?

또한 튜토리얼에서 사용 된 일부 좌표는 내 S4에 맞지 않습니다. 어떻게 모든 장치가이 장치와 호환되도록해야합니까?

추가 CODE :

private static int CAMERA_WIDTH = 800; 
    private static int CAMERA_HEIGHT = 480; 

    @Override 
    public EngineOptions onCreateEngineOptions() { 
     camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
     EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.camera); 
     engineOptions.getAudioOptions().setNeedsMusic(true).setNeedsSound(true); 
     engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON); 
     return engineOptions; 
    } 
+0

카메라의 너비는 얼마입니까? –

+0

내 카메라의 높이와 너비는 800 x 480으로 하드 코딩되어 있습니다. 그리고 내 S4는 1920x1080입니다 :/왜 그 빌어 먹을 높은, 응? (코드 조각을 볼 수 있도록 게시물을 업데이트했습니다.) – user3078876

+0

사용중인 이미지가 480X800과 호환되는지 여부는 타겟팅됩니다. – Rama

답변

4

귀하의 문제는 해결하지만 비율이 아닙니다. 카메라의 비율은 1.66이고 장치의 비율은 1.77이며 거의 같지만 같지는 않습니다.

비율을 계산해야합니다. Andengine은 어떤 장치에서든 카메라를 투영 할 것입니다. 그것은 OpenGL과 카메라의 마술이지만, 비율이 같지 않으면 이미지가 잘 리거나 왜곡되지 않도록 선을 그려야합니다. 예를 들어 4 : 16 : 9 TV의 3 영화

해결책은 장치가 같은 비율을 갖는 카메라를 사용하는 것이므로 비율이 다른 경우 흰색 줄무늬가 없지만 일부 추가 배경이 있습니다.

예를 들어, 귀하의 경우, 장치 크기를 얻은 다음 비율 (1920/1080 = 1.7777)을 얻으십시오. 그러면 비율로 카메라를 생성 할 수 있습니다. 예 :

float device_ratio = DEVICE_HEIGHT/DEVICE_WIDTH;// in this case 1.7777 
    CAMERA_WIDTH = 800; 
    CAMERA_HEIGHT = 800/device_ratio ; /// this will be 450 

그래서, 당신은 800x450의 카메라를 가지고 것입니다, 당신은 그 크기 (또는자를 수 있습니다 몇 가지 더 큰)의 배경을 가질 수 있습니다. 즉, 장치의 전체 크기의 이미지를 사용할 필요는 없지만 장치의 크기가 동일한 카메라를 만들고 해당 카메라에서 잘 보이는 배경을 만듭니다. 800x450 크기의 "캔버스"로 세상을 만들고 andengine이 그것을 실제 장치에 투영합니다. 비율이 동일하기 때문에 모든 것이 잘 보일 것입니다. 잘린 것도없고, 왜곡 된 것도없고, 여분의 선도 없습니다.

이제 상대적인 생각을해야합니다. 카메라가 장치에 따라 항상 똑같지는 않기 때문입니다. 하드 코딩 된 값이 많지 않은 경우 간단합니다.

+0

1920x1080 주 메뉴 배경을 사용하여 시도했는데 응용 프로그램에서 오류가 발생했습니다. http://puu.sh/6cmzt.png LOL :( – user3078876

+0

그 배경이 크지는 않아요, 실제로 GPU 텍스처가 얼마나 큰지는 모르겠지만 너무 좋아요. 배경이 좋을뿐입니다. 해당 가로 세로 비율 또는 자르기 할 수있는 배경과 카메라보다 조금 더 작아서 어떤 비율이든 유효하지만 작은 배경 만 있으면 그 비율을 존중해야합니다. –

+1

+1 to @CarlosRobles - 실제 크기가 아니라 비율에 관한 것입니다. 1920x1080을 사용하지 마십시오. 1024x576과 같은 것을 사용하고 질감은 1024x1024 미만으로 유지하십시오. – jmroyalty