pymunk + tkinter:如何让球用pymunk向左或向右移动?

时间:2017-11-15 17:57:37

标签: tkinter pymunk

我创建了一个小例子程序,我使用pymunk来做物理和tkinter来做GUI的东西(因为我已经放弃了尝试让pygame安装到我的Mac上......)

我让它在一个球被创造,掉落并从地板弹跳的地方工作。如果我倾斜地板,它会开始正确向左或向右弹跳。

我无法弄清楚的是如何最初对球施加力,使其初始速度向右移动。

我在下面提供了我的代码。这可能是非常简单的事情,但我不是物理学家,也不了解时刻等等。

感谢。

维克

#include <example.h>

1 个答案:

答案 0 :(得分:1)

您可以在要推动的身体上使用body.apply_impulse_at_local_point(或*at_world_point)。 API在此处描述:http://www.pymunk.org/en/latest/pymunk.html#pymunk.Body.apply_impulse_at_local_point

因此,在您的代码中,您可以在将正文位置设置为body.apply_impulse_at_local_point((10000,0))之后立即执行x,400。请注意,您需要修改脉冲的强度才能获得所需的效果。通常我会在我希望它推动的方向上创建一个长度为1的向量,然后将其与我想要的冲量相乘。像这样:body.apply_impulse_at_local_point(10000 * Vec2d(1,0))。然后,例如,稍微向上瞄准就很容易。

此示例包括使用申请冲动的投球:https://github.com/viblo/pymunk/blob/master/examples/box2d_vertical_stack.py