python 如何使用重力使pymunk对象向中心点聚集?

fquxozlt  于 2023-01-04  发布在  Python
关注(0)|答案(1)|浏览(172)

在Pymunk中,可以设置重力,使对象向左或向右(x)以及向上或向下(y)。
我想改变重力,使物体聚集在中心,有点像质心。
有没有可能的办法做到这一点?

nkoocmlb

nkoocmlb1#

没有内置的方法来“移动”重力。相反,你必须手动操作,eidogg a为每个物体计算重力方向(和大小),然后在每个模拟步骤中将其作为力应用。
一种方法是创建一个自定义的速度函数,你可以在所有你想受重力影响的物体上设置它。http://www.pymunk.org/en/latest/pymunk.html#pymunk.Body.velocity_func

def custom_gravity_velocity(body, gravity, damping, dt):
   g = ... code to calculate the gravity you want
   # Call the default velocity function with the new gravity
   pymunk.Body.update_velocity(body, g, damping, dt)

body.velocity_func = custom_gravity_velocity

我在这里给Pymunk github添加了一个完整的例子:https://github.com/viblo/pymunk/blob/master/examples/planet.py

相关问题