2017-05-01 3 views
0

나는 두 개의 동적 인 몸을 가지고있다. 각 단계에서이 시체에 대한 const 속도를 설정해보십시오. 이렇게 세 가지 방법이 존재 변형 :Box2d 이상한 applyLinearImpulse

body.applyLinearImpulse(Helper.getVec(config.getLinearVelocity()*body.getMass(), body.getAngle()), body.getPosition()); 

또는

body.applyForce(Helper.getVec(config.getLinearVelocity()*body.getMass(), body.getAngle()), body.getPosition()); 

또는

body.setLinearVelocity(Helper.getVec(config.getLinearVelocity(), body.getAngle())); 

여기서 config.getLinearVelocity() 리턴 제 몸 값 V 2 몸체 용 1.5*V.

각 단계에서 setLinearVelocity으로 전화하면 신체가 정상적으로 움직이며 각각 속도가 있습니다. 그러나 각 단계에서 다른 기능을 호출하면 시체가 동일한 속도로 움직입니다. 속도는 setLinearVelosity보다 몇 배 더 큽니다. 왜?

답변

0

이 함수를 호출 할 때 mouvement가 여러 단계로 분해되므로 applyLinearImpulse를 한 번만 호출해야합니다. 예를 들어 플레이어를 점프하게하려면 bodyLinearImpulse()를 한 번만 호출하면 (예 : 화면을 터치 할 때) box2d가 속도를 증가 시키면 중력이 감소합니다.

반면 setLinearVelocity는 현재 세계의 현재 단계에 대한 속도를 설정합니다