java - 如何在AndEngine中决定SVG Sprite 的宽度和高度

标签 java android andengine

我正在使用 AndEngine 加载 svg 图像作为我的 Sprites。

我遇到的问题是我无法弄清楚如何缩放图像以适应运行它的特定设备。

sprite= new Sprite(positionX, positionY, WIDTH,HEIGHT,TextureRegion);

它采用的参数是 x 和 y 坐标上的位置,然后是宽度和高度。

我遇到的问题是我无法弄清楚如何将 Sprite 缩放到我想要的正确宽度和高度。

例如,我有一个标题,我希望标题在更大的设备上更大,我如何决定设备是否更大,并在更大的屏幕上放大它,在更小的屏幕上缩小它?

最佳答案

如果您使用恒定的相机尺寸,所有屏幕都会缩放(因此所有实体)。

确定一个恒定大小,例如 720x480

final static int CAMERA_WIDTH = 720;
final static int CAMERA_HEIGHT = 480;

然后,在创建引擎选项时,使用:

... new EngineOptions(... new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), ...);

在每台设备上,相机都会自行缩放以尽可能适合分辨率,同时保持宽度和高度之间的比例。 现在,创建 Sprite 时,只需执行以下操作:

Sprite sprite = new Sprite(x, y, TextureRegion);

不要给出 Sprite 大小!它相对于相机尺寸的大小将根据纹理区域的大小来决定,并且它将是一个常数。 然后,它将被相机缩放为- 设备屏幕缩放,从一个设备到另一个设备会发生变化,但比例将保持不变 - 在分辨率与相机宽度/高度比不同的设备上,游戏不会看起来像糟糕的缩放图像。

我认为AndEngine提供了一个很好的方法来处理不同的屏幕分辨率;恕我直言,这是最好使用的。

关于java - 如何在AndEngine中决定SVG Sprite 的宽度和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8685795/

相关文章:

java - Android替换fragment不隐藏底层fragment

java - Maven Junit 测试 "noClassDefFoundError"

java - 如何测试仅传递其子对象并期望父对象继承其子对象的更新值的方法?

android.text.format.Time 替换需要,因为它已被弃用

java - 使用 andengine GLES2 通过引用传递 Sprite 会导致空指针异常

java - 使用Andengine画圆

java - 为什么我无法调用带有错误类型参数的方法?

android - Jelly Bean 上的视频 Intent 出现奇怪错误

java - Libgdx 在屏幕中使用 InputMultiplexer 覆盖 keyDown

java - Andengine新 Activity - list