【问题标题】:Sprite size on different screen size Andengine Android不同屏幕尺寸Andengine Android上的精灵尺寸
【发布时间】:2012-07-09 02:05:37
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 如果您在启动引擎时使用 RatioResolutionPolicy,它会为您处理
  • 我刚刚用我的代码编辑了我的问题,你能帮我更多吗?我正在使用 RatioResolutionPolicy。

标签: android andengine


【解决方案1】:

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

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

【讨论】:

  • 相机尺寸应与屏幕尺寸一致。
【解决方案2】:

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

【讨论】:

  • 我用 800x480 相机测试了游戏场景 (1240x840) 的高分辨率背景,背景看起来被剪裁了。所以我不明白它对你有什么用!!!!!!
  • 所以扭转局面 - 使用 1240x840 的相机编写更高分辨率,让 AndEngine 处理较小的设备。正如我所说,我写的是 800x480,但我的平板电脑只有 1280x800
  • 在我看来,请使用分辨率为 1024x600 的相机。它适用于小型和高分辨率设备。
  • 比例分辨率策略很好,虽然我发现在开发基于像素艺术的游戏时,您通常希望将艺术像素的大小与显示器的像素大小相匹配,但它并不是很有帮助.比率分辨率策略倾向于以非整数大小调整大小,这会导致放大/缩小伪影。
  • 纵向模式的最佳高度和宽度是多少?
【解决方案3】:

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

希望对您有所帮助。

【讨论】:

  • 到目前为止我也只找到了这个解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多