2011-05-13 3 views
1

나는 몇백 개의 꼭지점으로 구성된 b2LoopShape에 원 모양의 땅이있는 게임을 쓰고 있습니다.Box2d 루프 모양, 원활한 착륙 결정

연락처 수신자를 사용하여 착륙이 부드럽거나 없는지 (가장자리에 수직으로 도착하거나 가장자리에 수직으로 도착하는지) 여부를 결정하려고합니다.

아이디어가 있으십니까?

답변

0

루프 모양은 여러 가장자리 세그먼트로 구성됩니다. 모든 모서리 세그먼트를 반복하고 각 모서리에서 원의 중심에 가장 가까운 점을 찾아야합니다. 이 중 가장 가까운 것은 충돌에 실제로 사용 된 포인트 여야합니다. 그것이 그것이 속하는 모서리 부분의 '팁'중 하나에 있다면, 원은 모서리의 끝을 치게됩니다. 그것이 가장자리의 중간을 따라 있다면, 그것은 부드럽게 착륙했다.

'부드럽게'뜻하는 바를 오해 할 수도 있지만, 위의 경우 실제로 두드린 가장자리의 두 끝점과 원의 이동 방향이 표시됩니다. 이것이 부드럽 든 그렇지 않든간에 이것들을 사용하여 스스로 결정할 수 있습니다.

+0

감사합니다. 첫 번째 부분을 알아 냈지만 두 번째 부분에 대한 영리한 방법을 제시하고자합니다. – erik

+0

나는 전에 이것을 해본 적이없고 그것에 대해 거의 알지 못하기 때문에 실제 답변을 드릴 수는 없지만, 필요한 것은 레이 캐스트 (또는 2 개 또는 3 개)와 가능하면 선형 (또는 각도)입니다.) 속도 검사. 행운을 빕니다. –