2014-12-06 5 views
0

저는 LibGDX와 Box2D를 사용하여 게임을 개발 중입니다. 두 몸체가 충돌 할 때 힘이나 충동을 얻고 싶습니다.하지만 그렇게 할 수있는 올바른 방법을 찾을 수 없습니다. 충동이나 힘을 얻기 위해 접촉 청취자를 어떻게 사용할 수 있습니까? postSolve 메서드에서 ContactImpulse 매개 변수를 사용하여 충동을 얻을 수 없습니다. . 누가 날 도울 수 있죠 ?Box2D Contact Listener, LibGDX

 new ContactListener() { 

    @Override 
    public void preSolve(Contact contact, Manifold oldManifold) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void postSolve(Contact contact, ContactImpulse impulse) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void endContact(Contact contact) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void beginContact(Contact contact) { 
     // TODO Auto-generated method stub 

    } 
}; 

답변

2

preSolve(Contact contact, Manifold manifold) 메서드에서 충돌 한 두 바디의 속도를 쿼리 할 수 ​​있습니다. contact.getFixtureA()contact.getFixtureB()을 사용하면 각 조명기의 바디를 가져올 수 있으며 body.getLinearVelocity()를 사용할 수 있습니다.

box2D가 실제로 충돌을 해결하기 전에 preSolve 메서드가 호출되기 때문에 충돌 순간에 충돌 속도에 계속 액세스 할 수 있습니다. 수동 상태로

는 "사전 해결 이벤트는 점 상태와 충돌의 접근 속도를 결정하기에 좋은 장소입니다"

사용자 수 등의 방법 무거운로 preSolve에 제공된 정보를 사용하여 몸이 얼마나 빠르며 그들이 당신의 물건에 어떻게 영향을 미칠지 결정합니다.

+0

좋습니다. 시도해 보겠습니다. 감사합니다. –