我有一个差不多完成的游戏,但我忘记了重力和冲动,我不想实现box2d,我得到了引力工作,但是有些机构可以解释如何在没有box2d的情况下应用冲动吗?
答案 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来实现。但是你可以调整一下,并希望它能在你的游戏中发挥作用。但请记住,在此之后总是应用你的引力。