2012-06-26 5 views
0

회전하는 원의 충돌 지점에 개체를 연결하려고 시도하지만 플레이어가 플레이어에 일정한 점이 붙어 있어야합니다. 예를 들어 플레이어가 앞뒤로 움직이며 사용자가 화면을 터치하고 플레이어가 위로 뛰었을 때 필요한 것은 플레이어가 서클과 충돌 할 때 다리가 달려서 원과 함께 계속 회전한다는 것입니다. 그래서 나는 cocos2d box2d에서 이런 종류의 충돌 조인트를 만드는 방법을 알고 싶습니까?box2d에서 회전 원에 객체를 연결하는 방법 cocos2d?

+0

box2d의 플래시 버전에는 b2WeldJoint가 있다고 생각합니다. 아마도 당신은 그 해결책을 적용 할 수있을 것입니다. –

답변

0

사용자와 원 간의 충돌이 감지되면 콜백 함수 (예 : CCCallFuncND)를 호출하는 작업을 실행할 수 있습니다. 콜백 함수는 두 바디 (NSValue valueWithPointer로 래핑 됨)에 대한 포인터를 전달 받아 이들 사이에 임의의 조인트를 만들 수 있습니다. 이 작업은 먼저 원하는 유형의 b2JointDef를 인스턴스화하고 해당 joint에 대한 bodyA 및 bodyB를 "함께 고정"하려는 두 몸체로 정의한 다음 b2World-> CreateJoint()를 호출하여 수행됩니다.

원 본체의 특정 지점 에 플레이어 본체를 연결하는 관점에서 anchorPoint와 같은 조인트 def의 매개 변수를 통해 플레이어 바디를 연결해야합니다. 예를 들어 b2 프리즘 관절에는 관절의 동작 범위의 중심을 정의하는 anchorPoint가 있습니다.

관련 문제