2013-03-27 2 views
0

휠체어를 사용하여 휠체어가 주 차량 바디에 부착 된 상태에서 물리학을 위해 box2d를 사용하여 안드로이드 게임을 만들고 있습니다. 지금은 특정 값으로 자신의 속도를 제한도 그 차량을 가속화하고, 할 수있는 적절한 방법을 찾고, 현재 나는이 방법으로 그 일을하고있다 :Box2d - 휠 속도 가속 및 제한

public void accelerate(int direction) 
{ 
    if (Math.abs(wheel1.getAngularVelocity()) < maxSpeed) 
    { 
     wheel1.applyAngularImpulse(accelerateRatio * direction); 
     wheel1.applyAngularImpulse(accelerateRatio * direction); 
    } 
} 

장소 :

  • wheel1wheel2은 내 바퀴 시체입니다.
  • int 방향은 가속하려는 방향입니다 (오른쪽 1, 왼쪽 -1).
  • 가속도 - 가속도 비율, 예를 들어 10입니다.
  • 최대 속도 - 차량의 최대 속도 (12)처럼 등

바로 가속화하고보다 왼쪽 가속 말할 수하는 동안, 그것은 짜증나는 버그가 특히 때문에, 그에게 완벽한 솔루션을 생각하지 않는다, 차량은있다 먼저 속도가 느려지므로 속도를 늦추십시오.

답변

1

휠이 현재 방향을 확인하는 방법이있는 경우 속도를 높이려는 경우에만 최대 속도인지 확인해야합니다. 말했듯이, 이제 속도를 높이거나 느리게하는 경우 최대 속도를 확인합니다.

0

현재 속도와 원하는 속도를 기준으로 accelerateRatio을 조정할 수 있습니다.

accelerateRatio = k * (float) Math.abs((
       getDesiredAngularVelocity() - wheel.getAngularVelocity()); 

원하는 경우 속도가 반대 방향을 따라 가면서 더 빨리 감속하는 데 도움이됩니다.