如何应用脉冲到一个对象没有box2d libgdx



我有一个几乎完成的游戏,但我忘记了重力和冲量,我不想实现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来实现。但你可以调整这一点,希望它能在你的游戏中发挥作用。记住在那之后一定要使用你的重力

最新更新