1
正如标题所说,我如何连接/约束2个pymunk主体/形状,以便它们不会作为一个单独的对象?
例如,在这种情况下,我有一个板球蝙蝠,由2个独立的身体和多晶硅组成。
我想将蝙蝠的“手柄”加入到我的蝙蝠的“刀片”中,以便获得一个蝙蝠般的物体。如何在pymunk中制作“复合”形状?
我的代码:
### 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)
这 ============= 变得 ============== ==>这
我有在身体吸引那些绿色圆圈的功能定位
Thx再次。但是如果我确实需要制造两个独立的身体形状,那么我该怎么做?例如,一个易碎的木板,如果关节上有超过x的力,就会断裂,给我2个独立的形状。这如何实现? – pradyunsg 2013-03-19 05:52:00
我也在想。我想要可破坏的物体。您可以单独处理每个形状的碰撞,并且如果您决定破坏形状,则确定其中心。删除旧的,并将相同的形状添加到新的身体。 – Kaliber64 2013-07-31 06:35:29
您是否必须在将两个形状添加到身体之后重新计算一次或者Pymunk会自动执行此操作? – skrx 2017-05-03 09:35:53