我正在使用 pymunk 来模拟身体移动。因为我希望身体以某种方式移动,所以我在每个时间点都设置它们的位置(我知道这不推荐用于 Chipmunk/Pymunk)。这样做可以为单个物体移动提供良好的结果,但问题是当我这样做时,物体似乎不再能够检测到碰撞,它们只是相互穿过而不是碰撞。我曾尝试使时间步长更小,但这似乎没有帮助。有没有人对我如何解决这个问题有任何提示,或者考虑到我在每个时间点都设置位置,这是不可避免的吗?
谢谢。
编辑显示示例代码:
所以我在每个时间步都设置位置和角度:
body.position = (body.position[0] + speed*cos(body.angle)*dt + (random term), \
body.position[1] + speed*sin(body.angle)*dt + (random term))
body.angle = body.angle + body.angular_velocity*dt + (random term)
我希望能够做到这一点,因为我有矩形主体,并且此代码允许矩形沿它们的长轴移动,并且它仅适用于一个主体,但是当我有多个主体时,我也希望碰撞起作用,这似乎让他们根本不工作(或者如果他们在工作,他们工作得非常糟糕)。