根据分辨率保持世界的比例 - 在LibGdx,Box2d中的屏幕尺寸

时间:2014-04-10 11:10:12

标签: java libgdx box2d

我刚开始使用LibGdx框架,我有一个我不明白的第一个问题。 由于我想用移动设备制作游戏,我想让我的游戏在大多数分辨率上看起来都很棒(就像大多数游戏一样)。

我已经创建了一些box2d的东西并在480x800屏幕上进行了测试。它看起来像这样:

enter image description here

然后我测试了它在240x320屏幕上的外观,看起来不太好。地面的高度应该更小,箱子也应该更小。另外还有一个盒子丢失(在地下)。

enter image description here

到目前为止我做了什么:

嗯,据说在box2d世界1pixel是1米,这是不好的。所以我创建了一个值为100的常量,并将所有box2d值(包括正交相机)除以此值。那么从240x320那个盒子做什么将保持比例(更小的屏幕 - 更小的世界 - >盒子和东西),并且在更高的分辨率下世界也将是比例(更大的分辨率 - 更大的世界 - >盒子和东西)。

我希望你理解这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

出于某种原因,我在Constatnts类中包含了一些错误的变量。

public static int V_WIDTH = Gdx.graphics.getWidth();
public static int V_HEIGHT = Gdx.graphics.getHeight();

当然这是错误的,因为所有测量都是错误的。 (例如,480x800上的世界将是48x80米,而240x320设备上的世界将是24x32米)

定义游戏世界时,您应该指定一些固定的屏幕分辨率,然后设置您的UI。如果变量是固定大小,那么所有分辨率上的世界大小都是相同的。

我已将上述变量更正为:

public static int V_WIDTH = 480;
public static int V_HEIGHT = 800;

现在确实有效。游戏世界会相应调整大小。

enter image description here

分辨率较小:

enter image description here