用pymunk阻尼碰撞

时间:2013-11-17 03:07:52

标签: chipmunk pymunk

有没有办法抑制pymunk中的碰撞。我正试图模拟太空飞船,当它们碰撞时,它们不应该只是反弹。重力是(0,0)。我想吸收大约90%的撞击,基本上就好像船体在碰撞中坍塌一样。

我想到的一个可能的事情是在解决后我可以读取用于解决碰撞的冲动并采取90%的冲击并抵消它使净解决率达到10%但是我需要角速度和常规速度的冲动是分开的。

我只需要吸收动力,因为碰撞中没有能量损失。它总是转移到另一个对象。

编辑:好的,所以弹性有助于反弹,但能量转移太高了。转移的能量被认为是在皱折碰撞中被吸收的。我仍然希望一些转移不多。我还在考虑这种冲动,因为这实际上是在碰撞时改变了它们的速度。但基于它是直接碰撞还是只是一个剪辑,数量是非常不同的。

1 个答案:

答案 0 :(得分:2)

您想要设置形状的弹性属性。我相信在pymunk中这样做的正确方法是:

# Replace newElasticity with the elasticity value you want.
# e.g. shape.elasticity = 0.3;
shape.elasticity = newElasticity;

对于每次碰撞,两个弹性相乘,产品确定与碰撞产生的弹性(乘积= 1.0)或非弹性(乘积= 0.0)碰撞的接近程度。

如果你想让碰撞成为弹性碰撞的10%,你需要将弹性设置为sqrt(0.1),大约为0.3。