Показать сообщение отдельно
Старый 16.01.2011, 00:33
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 2  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Чтобы тело двигалось "медленно но уверенно" - надо делать не applyImpulse(), а applyForce()

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

и какой-то цикл типа:
Код AS3:
while(позиция_тела != нужная_позиция) {
    body.ApplyForce(force, pos)
}
Ну скорее не в цикле а по ентер_фрейму это делать надо будет циклически.

Ну а перевод метров в пиксели это отдельная тема. Лучше ввести какую-то константу коеффициент или как-то так.

Вот мои параметры из текущего проекта.
Код AS3:
//draw levels
public const ITERATIONS	: int		= 50;//тут понятно, параметры настройки мира и разрешение
public const TIME_STEP	: Number	= 1.0/60.0;
public const SCREEN_WIDTH	: int		= 640;
public const SCREEN_HEIGHT	: int		= 480;
public const COEF		: Number	= 0.7;//это собственно и есть этот коэффициент, у вас он может быть другим
Коэффициент вычислялся эмпирическим путем)) В дальнейшем все формулы умножаются/делятся на него.
__________________
Кто к нам с чем для чего - тот у нас того от того.