不同设备上Box2D物体的速度不同

3
我的问题在这个视频中有记录:视频 当黑人扔出的物品在白色设备上移动得更慢时,背景速度和动画以相同的速度运行。是的,白色手机比较旧,但我觉得这不是问题,因为我已经在一个与黑色手机几乎相同硬件的手机上测试过我的应用程序,并且出现了同样的问题。有谁能帮助我理解为什么会发生这种情况吗?
我的步骤 - world.step(1 / 60f , 6, 2)。而尺寸则被分成了100的PPM。
谢谢!

Libgdx使用像素,而Box2D使用米作为距离单位。如果您能提供任何将米和像素之间进行转换的代码,那将非常不错。当将Box2D中的物体转换到您的2D世界时,您可能正在做一些错误的事情。 - Seyf
1个回答

3

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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接