【问题标题】:libgdx using percentage for imageslibgdx 对图像使用百分比
【发布时间】:2014-10-09 14:55:11
【问题描述】:

我正在制作一款类似于 Flappy Bird 的游戏,但它适用于横向模式,为了公平起见,让屏幕更大的人没有优势我将图像更改为屏幕百分比,例如小鸟会是屏幕高度的 10%,所以它在所有屏幕上都是一样的,问题是,这是个好主意还是有其他方法?

【问题讨论】:

  • 不是一个真正的编程问题。您可能会在 gamedev.stackexchange.com 上得到更好的答案。您提出的方法用于许多游戏中,但您必须考虑宽度和高度的各种比例。横向卷轴中的另一种可能的解决方案可能是将玩家在屏幕上的位置设置为距玩家正在移动的一侧一定距离。这样,所有设备在反应时间方面都处于平等地位。在更大的设备上玩会显示更多的风景,但它是玩家身后的风景,因此不会影响游戏。
  • 如果您使用像素图形,您的方法会导致它看起来模糊,或者像素大小不均匀(取决于您是否使用线性过滤)。

标签: java libgdx screen-resolution screen-size


【解决方案1】:

您不需要使用百分比。如果您使用的是 libgdx,您可以(并且应该)使用预定义的视口大小,因此屏幕分辨率由库而不是您来处理。

您可以使用相机、设置固定高度并计算宽度来实现此目的:

HEIGHT = 10;
WIDTH = (Gdx.graphics.getWidth()/Gdx.graphics.getHeight())*HEIGHT;

camera = new OrthographicCamera();
camera.setToOrtho(false, WIDTH, HEIGHT);

这样,您的身高将是 10 个单位。并且宽度会根据屏幕的x-y比例来计算。

小鸟将是屏幕高度的 10%

那么你的鸟将是 1 个单位大小(高度/10)。

如果您希望两边都固定(所以没有人看到更多的宽度)。它更容易,但您的图像不会保持它们的比例,它们会在两个轴上拉伸。

HEIGHT = 10;
WIDTH = 15;

camera = new OrthographicCamera();
camera.setToOrtho(false, WIDTH, HEIGHT);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 2018-01-06
    • 1970-01-01
    • 2019-02-27
    • 2012-01-04
    • 1970-01-01
    • 2012-12-12
    相关资源
    最近更新 更多