精灵在不同分辨率下的位置

时间:2016-07-09 14:16:35

标签: android libgdx

我知道这是一个古老的主题,但这是我处理不同决议的方法

我得到精灵x和y然后将它们除以800和480

例如,如果我在800和480上有150和50的精灵 它将在另一个屏幕分辨率为0.1875 * Gdx.graphics.getWidth()和0.1041 * Gdx.graphics.getHeight()

但问题是这并不适用于所有分辨率,因为当精灵处于高分辨率时,与小的分辨率相比有很大的变化

还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

使用Viewportshttps://github.com/libgdx/libgdx/wiki/Viewports

Viewport基本上为您完成所有分辨率数学运算。

这是它的工作原理: 您可以选择自己选择的世界尺寸。例如:400宽度,300高度。单位无关紧要。

当您将精灵放置在位置(200,150)时,无论分辨率如何,该精灵的左下角都将位于屏幕的中心。

Viewport将为您完成从世界坐标到屏幕坐标的计算。