【问题标题】:Libgdx linear velocity not workingLibgdx 线速度不起作用
【发布时间】:2013-07-10 15:12:46
【问题描述】:

我是第一次使用 libgdx 开发游戏。 我正在使用此代码来设置对象的线速度 踏步世界

world.step(Gdx.app.getGraphics().getDeltaTime(), 6, 2);

设定速度

body.setLinearVelocity(new Vector2(new Vector2(100, 100)));

身体被设置为动态,但对象没有足够的运动。

vX = 100 太低了吗?

【问题讨论】:

  • 您是设置一次速度还是每个时间步长?并且,不要将增量时间发布到 world.step。使用固定时间步长。
  • body.setLinearVelocity(new Vector2(new Vector2(100, 100)));你在期待什么

标签: java box2d libgdx


【解决方案1】:

如果您的游戏宽度和高度太大,例如 800x480 或其他东西,则将其除以 40,例如... 20x12 ....

这是因为 box2d 的速度限制为 2 个单位。而你想要的是每个时间步更多的单位,但你的屏幕太大而无法实现..所以如果你缩短你的世界,那么速度问题就会得到解决。

【讨论】:

  • 我的游戏宽高分别是800和400,如何缩短世界?
  • @ShidilDinesh 假设当前您的 box2d 主体尺寸为 80 * 40,使该尺寸为 80/40f 和 40/40f,这将使世界上的物体尺寸变小。使每个体型除以一个常数因子。还制作尺寸为 800/40f 和 40/40f 的相机,这将解决您的问题
  • @ShidilDinesh 您在 box2d 中使用的每个元素都必须除以一个常数值,例如。重力也必须除以用于缩短世界的相同因子
  • 我有一个尺寸为 800x480 的正交相机,我在游戏中使用了 scene2d。该怎么办?如何更改 box2d 主体的大小
  • @ShidilDinesh 当您为 box2d 主体创建形状时,通过将其除以 40 并创建相机 af 大小 20 * 12 来提供所有值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 2016-04-07
  • 1970-01-01
相关资源
最近更新 更多