Показать сообщение отдельно
Старый 10.01.2011, 15:52
sinya вне форума Посмотреть профиль Отправить личное сообщение для sinya Посетить домашнюю страницу sinya Найти все сообщения от sinya
  № 2  
Ответить с цитированием
sinya
 
Аватар для sinya

Регистрация: Apr 2003
Адрес: Ukraine, Kiev
Сообщений: 189
Отправить сообщение для sinya с помощью ICQ
По нажатии кнопок нужно плавно менять угол тачки (setAngle). А из этого угла вычислять вектор.
Для этого нужно вычислить скалярную скорость так:
Код:
var v = Math.sqrt(boxBody.vx*boxBody.vx + boxBody.vy*boxBody.vy)
а потом тригонометрия:
Код:
boxBody.ApplyForce(new b2Vec2(Math.cos(boxBody.a)*v, Math.sin(boxBody.a)*v),boxBody.GetPosition());
Ну или не ApplyForce, а напрямую vx и vy менять, а то я не в курсе, как оно в box2D.
Т.е. при нажатии вправо-влево меняем угол, при нажатии вверх наращиваем скорость, а после всего этого применяем вышенаписанное.
__________________
Платон мне друг, но истина в вине.