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
1条答案
按热度按时间nkoocmlb1#
没有内置的方法来“移动”重力。相反,你必须手动操作,eidogg a为每个物体计算重力方向(和大小),然后在每个模拟步骤中将其作为力应用。
一种方法是创建一个自定义的速度函数,你可以在所有你想受重力影响的物体上设置它。http://www.pymunk.org/en/latest/pymunk.html#pymunk.Body.velocity_func
我在这里给Pymunk github添加了一个完整的例子:https://github.com/viblo/pymunk/blob/master/examples/planet.py