android - 不同屏幕尺寸 Andengine Android 上的 Sprite 尺寸

标签 android andengine

` 我正在使用 Android Adnengine 开发我的第一款游戏。这是一款俯视赛车游戏。我使用了视差背景和一些汽车。我在宽度和高度较小的设备上进行了测试。

我根据相机的宽度、高度放置了32、64高的车。它适用于我的屏幕尺寸,但在更大的屏幕尺寸(如 Galaxy Tab)上,游戏中会留下巨大的空间,因为汽车尺寸保持不变,因为我必须以两个的幂来使用它们。

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

我已经修改了我的 list 文件以支持小尺寸、大尺寸和超大尺寸。

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

最佳答案

使用比率分辨率策略的一点是,您可以将游戏设计为特定尺寸,例如 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"平板电脑上一切看起来也不错 - 当然这不是一个主要的延伸。

关于android - 不同屏幕尺寸 Andengine Android 上的 Sprite 尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11399045/

相关文章:

android - 使用 Google Maps API 绘制 map 和移动标记

Android:设置自动亮度适应速度

android - Android 2.3 上的 layout_weight 无法按预期工作

Android 在图像的可见部分注册触摸事件?

java - 从Android 2.1瞄准Android 1.6平台

java - if 语句满足后执行 else 语句

java - 如何给ListView添加按钮监听器?

Android Room 无法处理我的类,因为它无法解决它们的所有依赖项

java - For 语句不适用于每个数组元素?

android - 如何在AndEngine中使用webview或open URL - Android