【发布时间】:2026-01-03 03:10:02
【问题描述】:
我有一个游戏快完成了,但我忘记了重力和冲动,我不想实现 box2d,我让重力工作,但是有人可以解释如何在没有 box2d 的情况下应用冲动吗?
【问题讨论】:
标签: java android libgdx physics gravity
我有一个游戏快完成了,但我忘记了重力和冲动,我不想实现 box2d,我让重力工作,但是有人可以解释如何在没有 box2d 的情况下应用冲动吗?
【问题讨论】:
标签: java android libgdx physics gravity
您可以通过将速度添加到对象速度来模拟脉冲。像这样:
class GameObject {
private Vector2 velocity = new Vector2();
public void applyImpulse(Vector2 impulse) {
velocity.add(impulse);
}
public void update(float deltaTime) {
float dampingPerSecond = 0.5f;
float dampingFactor = Math.max(0f, 1 - deltaTime*dampingPerSecond);
velocity.scl(dampingFactor);
}
}
现在您可以像这样使用它:object.applyImpulse(new Vector2(3, 2));。如果您在每一帧中更新您的所有GameObjects,您的对象会在给出脉冲后减速。如果没有进一步的冲动撞击您的物体,这就是您所期望的。但是,以现实的方式做到这一点很困难,可能只能通过使用 box2d 来实现。但是,您可能会对其进行调整,并希望它可以在您的游戏中发挥作用。记得在那之后始终应用你的重力。
【讨论】: