내 게임 안드로이드 내 선수가 invinsible> 개체와 충돌하게하고 싶습니다. 이 충돌은 감지되어야하지만 실제로 플레이어를 중지 시켜서는 안됩니다. 당신이 필요로하는 무엇
는 감지 할 수있는 Box2D의 센서 본체와 짝을 사용자 정의 ContactListener입니다. 플레이어는 또한 Box2D 바디입니다. 두 개의 본문 식별자를 UserData 형식 (예 : 간단한 문자열)으로 지정합니다. 그런 다음 ContactListener에서 이러한 UserDatas를 확인할 수 있습니다.
Fixture.setUserData(...)
귀하의 ContactListener는 Box2D의 ContactListener를 구현하고 그 메소드를 오버라이드 (override) 할 :
public class MyContactListener implements ContactListener{
@Override
public void beginContact(Contact contact) {
Fixture fa = contact.getFixtureA();
Fixture fb = contact.getFixtureB();
if(fa == null || fb == null) return;
// ...
}
@Override
public void endContact(Contact contact) {
Fixture fa = contact.getFixtureA();
Fixture fb = contact.getFixtureB();
if(fa == null || fb == null) return;
// ...
}
@Override
public void preSolve(Contact contact, Manifold oldManifold) {}
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {}
}
Box2D의 본체와 센서 선언은 독자들에게 연습으로 남아 있습니다.
Box2D의를위한 초보자 튜토리얼은 여기에서 찾을 수 있습니다 : 는 http://rotatingcanvas.com/using-box2d-in-libgdx-game-part-i/
그래서 귀하의 질문은 ContactListener을 구현하는 방법입니까? 이 튜토리얼을 보시오. https://xoppa.github.io/blog/using-the-libgdx-3d-physics-bullet-wrapper-part1/. 완전히 읽으십시오. – Xoppa