2012-07-09 64 views
11

`我正在开发Android Adnengine中的第一款游戏。这是一个从顶部看赛车游戏。我用视差背景和一些汽车。我在我的设备上测试它的宽度和高度较小。在不同屏幕尺寸上的Sprite大小Andengine Android

根据摄像机的宽度和高度,我放置了车高32和高64的车。它在我的屏幕尺寸上工作正常,但是在更大的屏幕尺寸上,比如Galaxy Tab,游戏中留下了巨大的空间,因为汽车尺寸保持不变,因为我必须使用它们的两个幂。

如何使用适合所有屏幕尺寸的图像?根据具有不同相机宽度和高度的图像尺寸,我是否必须使用不同的图像?我相信这有一个解决方案。

我已经修改了我的清单文件以支持小,大和xlarge大小。

public Engine onLoadEngine() { 

    final Display display = getWindowManager().getDefaultDisplay(); 
    CAMERA_WIDTH = display.getWidth(); 
    CAMERA_HEIGHT = display.getHeight(); 

    //Toast.makeText(getApplicationContext(), CAMERA_WIDTH, 3); 

    mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
    engine = new Engine(new EngineOptions(true, 
      ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(
        CAMERA_WIDTH, CAMERA_HEIGHT), mCamera).setNeedsMusic(
      true).setNeedsSound(true)); 

    return engine; 
} 
+0

如果您在初始化引擎时使用比率分辨率策略,那么它会采用这个比例 – jmroyalty 2012-07-09 17:16:29

+0

我刚刚编辑我的问题与我的代码可以帮助我更多吗? 我“米使用RatioResolutionPolicy。 – 2012-07-09 17:37:05

回答

14

有关使用比率分辨率政策的一点是,您可以将游戏设计为特定尺寸,比如现在非常流行的800x480尺寸。

我认为大多数人流浪的想法是他们需要拉动当前的显示宽度/高度并使用它来初始化引擎。

根据我的理解,比率解析策略的要点是将尺寸设置为硬编码值,并让比率解析策略处理从一个设备到另一个设备的差异。

CAMERA_WIDTH = 800; 
CAMERA_HEIGHT = 480; 

//Toast.makeText(getApplicationContext(), CAMERA_WIDTH, 3); 

mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
engine = new Engine(new EngineOptions(true, 
     ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(
       CAMERA_WIDTH, CAMERA_HEIGHT), mCamera).setNeedsMusic(
     true).setNeedsSound(true)); 

一旦你做这样的事情,那么你只需要确保你的图形和间距看好在您选择的前宽度/高度 - 在本例中为800 x 480。如果一切工作和配合,并期待良好,那么当设备具有不同的屏幕尺寸时,比例分辨率策略将处理事情。

至少,我拿上它应该如何工作 - 我为800×480,一切看起来对我7" 平板电脑太好 - 理所当然地认为这不是一个主要的拉伸

+0

我测试的游戏场景(1240x840),带摄像头为800×480高分辨率的背景,背景看起来裁剪。所以,我不明白它是如何工作的罚款你!!!!!! – 2013-04-04 16:04:06

+0

所以转过来 - 用1240x840的相机写出更高的分辨率,并让AndEngine处理更小的设备。正如我所说,我写的是800x480,但我的平板电脑只有1280x800 – jmroyalty 2013-04-09 19:33:25

+0

根据我的查看,使用分辨率为1024x600的相机,它适用于小型和高分辨率设备。 – Siddharth 2013-04-12 17:35:30

3

获取设备的高度和宽度,然后以代数形式使精灵成为屏幕宽度和高度的百分比。

希望有所帮助。

+0

到目前为止,我也只找到这一解决方案。 – 2012-07-10 10:26:05

0

根据我的经验,我想。解决这个问题的最好方法是处理大多数设备中流行的两种主要屏幕比例(5:4,5:3)。

您为每个比率选择一个高分辨率,让引擎如果设备屏幕尺寸较小,则会缩小比例

+0

相机尺寸应该与屏幕尺寸一致。 – 2013-04-10 20:43:06