2013-06-03 1 views
1

모든 장치의 스프라이트 크기 설정 방법은 무엇입니까? 나는 이것을 스프라이트에 사용하고있다 :모든 장치의 스프라이트 크기

final Display display = getWindowManager().getDefaultDisplay(); 
    CAMERA_WIDTH = display.getWidth(); 
    CAMERA_HEIGHT = display.getHeight(); 
    Log.e(Integer.toString(CAMERA_WIDTH), Integer.toString(CAMERA_HEIGHT)); 
    camera = new BoundCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 

    return new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED, 
      new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera); 




      facebook = BitmapTextureAtlasTextureRegionFactory.createFromAsset(
      this.mBitmapTextureAtlas, this, "facebook.png", 0, 0); 


      mHardware1[active] = new Sprite(pX, pY, facebook, 
       this.getVertexBufferObjectManager()); 

그러나 내가 작은 화면을 가진 장치에서 게임을 실행할 때, 스프라이트 크기는 동일하게 유지된다. 이것을 극복하는 방법?

+0

에 대한 크기를 조정 교체 이 일에 대해 귀찮게해야합니다. – Siddharth

+0

m이 마지막 디스플레이 사용 display = getWindowManager(). getDefaultDisplay(); \t \t CAMERA_WIDTH = display.getWidth(); \t \t CAMERA_HEIGHT = display.getHeight(); \t \t Log.e (Integer.toString (CAMERA_WIDTH), Integer.toString (CAMERA_HEIGHT)); \t \t 카메라 = 새로운 BoundCamera (0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); \t \t 반환 새로운 EngineOptions (ScreenOrientation.LANDSCAPE_FIXED 사실 \t \t \t \t 새로운 RatioResolutionPolicy (CAMERA_WIDTH, CAMERA_HEIGHT), 카메라); – raj

+0

모든 장치에서 동일한 결과를 얻으려면 800x480 또는 1024x600과 같은 디자이너의 그래픽을 개발할 때 CAMERA_WIDTH 및 CAMERA_HEIGHT를 사용하십시오. – Siddharth

답변

0

스프라이트 크기에 "dp"단위를 사용해보십시오. 'px'를 사용하는 경우 다른 기기에서도 확장되지 않습니다.

자세한 내용은 this link

+0

px와 py는 크기가 아닌 – raj

+1

입니다. 내 설명을 잘못 이해했습니다. :) 즉, 이미지 밀도를 설정해야합니다. 어쩌면 setDensity() 또는 이와 비슷한 것을 사용하는 것이 좋습니다. 그 크기 설정에서 "px"대신 "dp"를 사용하십시오. 물론 나는'pX'와'pY'가 당신의 스프라이트의 위치라는 것을 알고 있습니다. – reidzeibel

+0

okk 제가 thnx를 d 방법으로 시도하겠습니다. – raj

0

주석에 @Siddharth에 의해 제공에 대한 답변이 정확 :) 읽어 보시기 바랍니다. AndEngine에서는 화면 크기에 맞게 Sprites의 크기를 조절하지 않아도됩니다. 대신 내장 된 AndEngine 기능을 사용하여 전체 장면을 그에 맞게 조정해야합니다. 당신이 1280 * 720에 CAMERA_WIDTHCAMERA_HEIGHT을 설정하고 스프라이트의 크기가 640 × 360 인 경우

@Override 
public EngineOptions onCreateEngineOptions() { 
    final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
    camera.setCenter(0, 0); 

    return new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR, new RatioResolutionPolicy(.CAMERA_WIDTH, CAMERA_HEIGHT), camera); 
} 

지금, AndEngine는 1280 * 720에 대한 화면에서 스프라이트를 포함하여 아래로 전체 장면을 확장하거나 것입니다. 스프라이트는 항상 화면의 4 분의 1을 차지합니다.

0

FillResolutionPolicy이

new FillResolutionPolicy() 

new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT) 

당신이 하나 개의 차원에서 일 필요가 당신은 당신이 '돈 RatioResolutionPolicy를 사용하는 경우 자동으로이 모든 장치