2012-05-13 2 views
0

Я пытаюсь сделать мой маленький маленький двигатель, чтобы сделать таблицу Puck ползунок игры, как этот one:Как применить трение к этой модели физики?

Тогда у меня возникают проблемы, чтобы переместить шайбу хорошо, потому что я использую скорость нормального сделать aceleration быть противоположно вектору скорости:

 velocity = ((Vector2) (initMousePosition - Input.mousePosition)).normalized*1.42f*Mathf.Min(1f,((Vector2) (initMousePosition - Input.mousePosition)).magnitude/Screen.height); 
     acceleration = - velocity.normalized; 
... 

Это наш полезный вары, чтобы решить мою проблему:

Board.COEFFICIENTE_OF_FRICTION = 0.1f;

общественная позиция Vector2;

общественная скорость Vector2;

общественный Вектор2 ускорение;

Код:

private static void Move() 
{ 
    foreach(BoardObject obj in objects) 
    { 
     if (obj is Puck) 
     { 
      auxPuck = (Puck) obj; 
      if (auxPuck.velocity.magnitude > 0f) 
      { 
       auxPuck.acceleration += (-auxPuck.acceleration * 9.8f*auxPuck.mass*Board.COEFFICIENTE_OF_FRICTION*Time.deltaTime); 
       auxPuck.velocity += auxPuck.acceleration * Time.deltaTime; 
       auxPuck.position += auxPuck.velocity * Time.deltaTime; 

       if (VectorsChangeMagnitudeSign(auxPuck.velocity,auxPuck.velocity-auxPuck.acceleration*Time.deltaTime)) 
       { 
        auxPuck.acceleration = Vector2.zero; 
        auxPuck.velocity = Vector2.zero; 
       } 
      } 
     } 
    } 
} 

Может быть, я буду должен использовать ускорение, как поплавок, или начиная с другим вектором, что это не нормированные скоростей. Моя проблема возникает, когда скорость становится более высокой, у нее, кажется, есть странная остаточная скорость, которая заставляет ее двигаться постоянно в конце.

Любая идея о том, как я должен делать это, хороший способ запустить его плаксиво?

ответ

0

Извините, я нашел проблему. Я говорил тебе . Я начал использовать нормированный вектор, когда я бросаю шайбу, проблема возникает, когда шайба меняет направление против стен, а затем ускорение останавливает силу трения, вызывая постоянную скорость.

Извините за ваше время и спасибо в любом случае.

Смежные вопросы