2013-06-03 54 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

如果您正在使用RatioResolutionPolicy那么你不”不必为此烦恼。 – 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 camera = new 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()或类似的东西。在该尺寸设置中,使用“dp”而不是“px”。当然我知道'pX'和'pY'是你精灵的位置 – reidzeibel

+0

okk让我试试thnx的方式 – raj

0

在评论由@Siddharth给出的答案是正确的。在AndEngine中,你不应该按比例缩放Sprites以适应自己的屏幕尺寸。相反,您应该使用内置的AndEngine功能来相应地缩放整个场景。

@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); 
} 

现在,当您设置CAMERA_WIDTHCAMERA_HEIGHT,到1280×720,你的雪碧尺寸为640×360,AndEngine会缩小整个场景向上或向下包括你的精灵任何屏幕上的1280×720。你的精灵总是会占用屏幕的四分之一。

0

更换

new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT) 

与此

new FillResolutionPolicy() 

与FillResolutionPolicy你只需要在一维的工作,它会自动这种调整对所有设备