当有重力时,如何让body在屏幕上弹跳(Box2D / AndEngine)



我做了相当多的搜索,并找到了多个反重力物体的建议,但似乎没有什么工作得恰到好处。我有一个用地球引力创造的物理世界。用户点击屏幕并创建精灵/动态身体。然后由于重力作用,这些落到屏幕底部。我有另一个精灵/身体应该在屏幕上弹跳,忽略重力并从已创建的精灵上反弹。AndEngine的Box2D似乎没有设置GravityScale(),所以我不能将gravity设置为0。创建连接到运动体的夹具以确定哪一侧碰撞的问题在于精灵是一个圆(这没什么大不了的),我不太明白它们是如何工作的。我看到我也许能够在 -y 方向上创建一个恒定力等于 body.getMass()*SensorManager.Earth 的动态物体,并将弹性设置为 1,但没有办法获得完美的弹性碰撞。有人有什么完美的建议吗?

Box2D 中的碰撞从来都不是真正的弹性,计算中有一些小错误往往会堆积起来,身体会失去能量。我想到了两种方法。

a) 您可以将弹性设置为高于 1 一点

b)您可以监测身体的动能,如果它低于某个阈值,请稍微轻推一下

JohnEye是正确的,只是没有我喜欢的那么翔实。在一个类似的问题中,我回答了这个问题:如何在物体行进的方向上施加力(Box2D)?

最新更新