如何在没有box2d libgdx的情况下对一个对象施加冲动

时间:2014-06-23 01:08:55

标签: java android libgdx physics gravity

我有一个差不多完成的游戏,但我忘记了重力和冲动,我不想实现box2d,我得到了引力工作,但是有些机构可以解释如何在没有box2d的情况下应用冲动吗?

1 个答案:

答案 0 :(得分:1)

您可以通过向物体速度添加速度来模拟脉冲。像那样:

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 s,则在给出冲动后,您的对象将变慢。如果没有进一步的冲动击中你的对象,你会发生什么。尽管这样做很难实现,但只能通过使用box2d来实现。但是你可以调整一下,并希望它能在你的游戏中发挥作用。但请记住,在此之后总是应用你的引力。