【问题标题】:Different Box2D body speeds on different devices不同设备上不同的 Box2D 机身速度
【发布时间】:2014-10-01 20:23:38
【问题描述】:

我的问题记录在此:Video

背景速度和动画以相同的速度运行,而由那个黑人投掷的物品在白色设备上移动得更慢......好吧,是的,白色手机较旧,但这不是问题,我认为,因为我已经在与黑色手机的硬件几乎相同的手机上测试了我的应用程序,并且遇到了同样的问题。谁能帮我理解为什么会发生这种情况...?

我的步骤 - world.step(1 / 60f , 6, 2);。并且维度除以 100 的 PPM。

谢谢!

【问题讨论】:

  • Libgdx 使用像素,Box2D 使用米作为距离。如果您可以提供您编写的任何代码以在米和像素之间进行转换,那就太好了。将 Box2D 的主体转换为 2D 世界时,您可能做错了什么。

标签: android libgdx box2d android-hardware


【解决方案1】:

Libgdx 始终以设备可以处理的最快速度运行(桌面除外,您可以将其限制为每秒 60 次)。

硬件并不总是不同的。 Android 设备具有每秒帧数上限,例如我的 Galaxy Ace 的 FPS 上限为 90。一些更新、功能更强大的设备可能有 60 甚至 50。因此,您的应用在我的 Galaxy ace 中的更新速度比任何其他设备都快那些其他设备。

您可以使用此技术自己设置上限:

有这两个字段。-

public static final float FPSCAP = 1/60F;
private float accumulator = 0;

在你的渲染方法中。-

accumulator+=delta;
while(accumulator>FPSCAP){
   world.step(FPSCAP, 6, 2);
   accumulator-=FPSCAP;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多