不同屏幕尺寸Andengine Android上的精灵尺寸

时间:2012-07-09 16:13:55

标签: android andengine

`我正在使用Android Adnengine开发我的第一款游戏。这是一个从顶视图的赛车游戏。我使用了视差背景和一些汽车。我在我的设备上测试了它,它的宽度和高度都较小。

我根据相机的宽度,高度放置了32和64的车。我的屏幕尺寸工作得很好但是在更大的屏幕尺寸上,比如Galaxy Tab,游戏中留下了巨大的空间,因为汽车尺寸与我必须以2的力量使用它们相同。

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

我已经修改了我的清单文件,以支持小,大和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;
}

3 个答案:

答案 0 :(得分: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 x 480,而且我的7英寸平板电脑上的一切看起来也不错 - 认为这不是一个主要的延伸。

答案 1 :(得分:3)

获取设备的高度和宽度,然后用代数方式使精灵占屏幕宽度和高度的百分比。

希望有所帮助。

答案 2 :(得分:0)

根据我的经验,我认为解决此问题的最佳方法是处理两种主要的屏幕比例(5:4,5:3),这些比例在大多数设备中都很流行。

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