2011-08-25 4 views
0

나는 AndEngine과 Box2D 물리학 addon을 사용하여 간단한 스케이트 보딩 게임을 만들려고합니다. 나는 '그라인드'레일을 만들고, 플레이어의 바닥이 그라인드 레일의 상단과 충돌하고 있는지 테스트 할 필요가있다. 이 작업을 수행하는 일반적인 방법은 충돌 상자의 크기를 스프라이트의 각 가장자리를 따라 1 픽셀로 조정하고 충돌을 테스트하는 것입니다. 그러나 스프라이트 바디의 충돌 상자의 크기를 어떻게 조정할 수 있는지 알 수 없습니다.Android Box2D 충돌 감지 : 특정 경계를 테스트하는 방법?

Andengines 충돌 감지를 사용 하겠지만 box2Ds 충돌 감지 및 일반 물리학은 AndEngines 충돌 감지와의 충돌로 감지되는 일부 작업을 중지하므로 내 물리 세계에 대한 새로운 'ContactListener'를 만들고 주변에서 놀려고했습니다. 'beginContact (Contact contact)'방법을 사용하는 것이지만, 충돌하는 것들을 구별하는 것은 훨씬 간단합니다. 나는 무엇을하는지 잘 모르겠습니다 ...

또한 내 선수가 (그 앞에서) 가로장 옆으로 지나가지만 내 선수가 그 모서리와 충돌하면서 멈 춥니 다.

지금은 box2D가 그 가치보다 더 많은 노력을하고있는 것 같아요. 코드에서 뽑아 내고 대신 AndEngines 충돌 감지로 가서 내 자신의 간단한 물리학에 균열이 생겼습니다.

+1

이 페이지는 유용 할 수 있습니다. http://www.iforce2d.net/b2dtut/collision-callbacks 레일을 콜리 전시킬 수있는시기를 결정하기 위해 b2ContactFilter :: ShouldCollide 함수를 사용할 수 있습니다. – iforce2d

+0

@ iforce2d 포인터 주셔서 감사합니다. 지금 살펴 보겠습니다. – AndroidNoob

답변

1

생성 한 본문 개체에 'Userdata'(유형 : 개체)를 첨부 할 수 있습니다. 나는 어떤 종류의 Userdata 클래스를 만들고 SkhBoardUserdata 및 GrindRailUserdata와 같은 sth를 확장합니다.

+0

완전히 잊었습니다! 필요한 추가 데이터가있는 JSONObject를 만들어서 필요한만큼 추가 정보를 가질 수 있다고 생각합니다. 감사! – AndroidNoob