我有一个几乎完成的游戏,但我忘记了重力和冲量,我不想实现box2d,我得到了重力的工作,但有人能解释如何应用冲量没有box2d?
你可以通过在物体速度上添加一个速度来模拟脉冲。像这样:
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));
。如果你在每一帧中更新你所有的GameObject
,你的物体在一个脉冲后会变慢。这就是你所期望的,如果没有进一步的脉冲撞击你的物体。以一种现实的方式做到这一点是困难的,可能只能通过使用box2d来实现。但你可以调整这一点,希望它能在你的游戏中发挥作用。记住在那之后一定要使用你的重力