2011-02-16 1 views
1

게임에서 객체를 끌면 객체가 손가락 바로 아래에 있지 않습니다. 우리가 제거 할 수없는이 지연/지연이 있습니다. 손가락 바로 아래에 있지 않고 내 손가락을 따라갑니다. 테스트 베드에서도 시험 사용해 볼 수 있습니다. 객체를 매우 빠르게 움직이고 객체가 마우스/핑거 아래에 있지 않음box2d + cocos2d : mouseJoint를 사용하여 상자 2d에서 객체를 조작 할 때 지연이있는 이유

box2d의 약점이 있습니까? 또는 나는 명백한 것을 놓치고 있는가?

미리 감사드립니다.

답변

0

mouseJointdistantJoint (봄)과 비슷합니다. 지연을 최소화하기 위해 지정할 수있는 maxForce 매개 변수가있어 봄을 더 어렵게 만듭니다.

편집 :

은 또한 당신이 직접 손가락 위치로 위치의 지정 개체를 이동할 수 있습니다. 그러나이 물체가 무언가와 충돌 할 경우 신체의 속도가 0이되기 때문에 비 신체적 행동을 제공합니다.

정확하게 움직이게하려면 (충돌이있을 경우) 속도 나 가속도를 지정해야합니다 (마우스 관절처럼). 그러나 당신의 손가락 속도를 평가하기 위해서는 약간의 시간이 필요하고 지연이 남아 있습니다.

+0

답장을 보내 주셔서 감사합니다. 내가 이미 maxForce를 매우 높은 숫자로 설정 한 것 같습니다 :)이 지연으로 살아야합니다. md1.maxForce = 9999999.0f * _Body-> GetMass(); \t \t _mouseJoint = (b2MouseJoint *) _ world-> CreateJoint (&md1); – user82383

0

대부분은 하드웨어의 대기 시간과 관련이 있습니다. 타이밍이 완전히 완벽하다면, iPhone의 GPU로 인한 지연 시간이 16ms, 터치 스크린 지연 시간이 20ms, 처리 시간이 오래 걸릴 것입니다. 따라서 이들은 36-70ms의 지연 시간을 더합니다. 또한 물리 시뮬레이션의 안정성을 위해 마우스 조인트의 box2d에 약간의 댐핑이 적용됩니다.

관련 문제