2

正如标题所说,我怎样才能加入/约束 2 个 pymunk 身体/形状,使它们不充当一个单一的对象?
例如,在这种情况下,我有一个板球拍,由 2 个独立的主体和多边形组成。
我想将蝙蝠的“手柄”连接到我的蝙蝠的“刀片”上,这样我就得到了一个类似蝙蝠的物体。

我的代码:

### BAT n Co. ###
# body format: [vertices, offset, position, mass]
bat_bodies_v = [
# bat
    [[[0, 34], [4, 34], [4, 0], [0, 0]],(-2,-20),(103,190),20], # handle
    [[[6, 90] , [0, 32] , [0, 17], [6, 0] , [10, 0], [10, 90]],(-5,-20),(100,100),1100] # blade
]

bat_bodies = []
for vertices, offset, pos, mass in bat_bodies_v:
    moment = pm.moment_for_poly(mass,vertices,offset)
    b = pm.Body(mass,moment)
    b.position = pos

    poly = pm.Poly(b, vertices,offset)
    poly.friction = 0.9

    bat_bodies.append(poly)
    space.add(b,poly)

# the closest I got.
j1 = pm.constraint.PinJoint(bat_bodies[0].body,bat_bodies[1].body)
j2 = pm.constraint.RotaryLimitJoint(bat_bodies[0].body,bat_bodies[1].body,0,0)
space.add(j1,j2)

=============变成================> 开始结尾
我有一个函数可以在身体位置绘制那些绿色圆圈

4

1 回答 1

2

在 pymunk 中构建复杂形状的最佳方法是将形状附加到同一个主体上。因此,除非您有充分的理由将它们分开,否则我建议您尝试将两种形状添加到同一个主体中。

但是,有时您可能想做其他事情,例如能够破坏对象。我自己并没有真正实现任何东西,但 Scott(Chipmunk 的)在这篇文章中写道http://chipmunk-physics.net/forum/viewtopic.php?f=1&t=2420&p=10644&hilit=breakable#p10644使用 PivotJoint 和GearJoint 可能是将两个主体保持在一起的好主意。

于 2013-03-18T16:54:59.847 回答