2013-03-17 5 views
1

제목에서 말하듯이, 어떻게 하나의 단일 객체처럼 행동 할 수 있도록 pymunk bodies/shapes 2 조인/제한 조건에 참여할 수 있습니까 ??
예를 들어,이 경우 크리켓 박쥐가 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) 

============= 된다 ============== ==> StartEnd
나는 몸에서 그 녹색 동그라미를 그린 함수

배치했다

답변

1

pymunk에서 복잡한 모양을 만드는 가장 좋은 방법은 단순히 같은 본문에 도형을 첨부하는 것입니다. 그래서 당신이 왜 그들이 분리되기를 원하는지에 대한 좋은 이유가 없다면, 당신은 같은 몸체에 두 모양을 모두 넣으시기 바랍니다.

그러나 때로는 개체를 손상시킬 수있는 등의 다른 작업을 수행하려고 할 수 있습니다. 나는 실제로 무엇이든 함축하지만, Scott (Chipmunk)은이 게시물에 http://chipmunk-physics.net/forum/viewtopic.php?f=1&t=2420&p=10644&hilit=breakable#p10644이라고 쓰고 PivotJoint와 GearJoint를 사용하면 두 몸체를 함께 유지하는 것이 좋습니다.

+0

다시 Thx. 그러나 두 몸체가 분리 된 두 가지 모양을 만들어야한다면 어떻게해야합니까? 예를 들어 깨지기 쉬운 판자처럼 관절에 x 이상의 힘이 있으면 두 개의 분리 된 모양이 나옵니다. 이것이 어떻게 구현 될 수 있는가? – pradyunsg

+0

나는 그것도 생각하고 있었다. 나는 파괴 가능한 물건을 원했다. 개별 모양에 대한 충돌을 개별적으로 처리 할 수 ​​있으며, 모양이 부러진 경우 그 중심을 결정할 수 있습니다. 오래된 것을 제거하고 새로운 몸체에 같은 모양을 추가하십시오. – Kaliber64

+0

두 개의 도형을 몸에 추가 한 후 순간을 다시 계산해야합니까, 아니면 Pymunk가 자동으로 그렇게합니까? – skrx

관련 문제