2012-04-12 2 views
1

저는 cocos2d와 box2d를 사용하여 ipad 게임을 만들고 있습니다.Box2D에서 센서 객체의 터널링을 방지하는 방법

다른 요소들 중에는 빠르게 움직이는 플레이어 개체와 정적 인 라인 개체가 많이 있습니다. 플레이어가 플레이어를 가로 질렀을 때 선을 감지하고 게임 내 플레이어 객체 나 다른 움직이는 객체와 벽처럼 행동하지 않기를 원합니다. 그래서 저는 센서가되도록 선들을 설정했습니다.

그러나 Box2D가 빠르게 움직이는 물체 충돌 감지에 사용되는 멋진 터널 방지 코드는 센서로 설정된 본체에는 적용되지 않는 것처럼 보입니다. 이제 플레이어 오브젝트가 라인을 통과하여 5 초에 한 번만 검출됩니다.

얼마나 빨리 진행 되더라도 매회 선을 넘는 스프라이트를 감지하기 위해 box2d를 얻을 수 있습니까?

편집 : 다른 게시자가 비슷한 문제가있는 box2D 포럼에서이 게시물을 발견하여 a possible solution을 발견했습니다. 그러나 나는 해결책을 구현하는 방법을 따르지 않는다. 어쩌면 다른 사람을 도울 것입니다. 아니면 누군가이 사람이 무엇을 더 명확하게했는지 설명 할 수 있습니다. 그들이 말한 것은 다음과 같습니다.

+0

Genpfault, 왜 내 "감사합니다"를 삭제 했습니까? 여기가 부적절한 것으로 간주됩니까? 나는 stackoverflow에 처음이다, 미안하다. –

+1

그냥 사이드 노트, 제임스. 여기서 답을 찾지 못하면 Box2D 포럼에 질문을 게시하는 것이 좋습니다. 개발자는 일반적으로 거기에서 꽤 활동적입니다. – user987280

+0

감사합니다, 나는 ~ : –

답변

2

좋아요. 누군가 Box2D 포럼에서 내장 된 충돌 감지 대신 레이 캐스트를 사용하는 해결책을 제시했습니다. 이 작업을 수행하는 방법에 대한 지침을 찾을 수있었습니다. in this excellent tutorial on RayWenderlich.com

제 목적으로는 마지막 프레임에서 스프라이트의 속도를 계산 한 다음 레이 캐스트를 수행하여 모든 선을 통과했는지 확인했습니다. 콜백은 x, y 좌표를 넘었습니다.