Показать сообщение отдельно
Старый 05.02.2012, 19:31   #2
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: помогите плз

Тебе нужно векторное перемещение делать.
Имею ввиду, что где-то в программе есть две переменные (или больше, по числу измерений пространства) типа deltax, deltay. В которых хранится сдвиг координат игрока на текущий шаг/кадр. И еще отдельно скорость speed#.

Потом, в момент сдвига координаты игрока суммируются с координатами сдвига:
px# = px + deltax*speed#
py# = py + deltay*speed#
Расчет удобно производить в дробных числах, а для отрисовки графики потом откидывать дробную часть.

Пример:
Влево-вверх: deltax=-1; deltay=-1
Вправо-вверх: deltax=1; deltay=-1
Вниз: deltax=0; deltay=1

Ну и вариации, в зависимости от нужд. Можно тоже дробями сделать.
Спасибо не мне, а ему.
http://forum.boolean.name/showthread.php?p=20368
4-ый,5-ый и последний пункт особенно внимательно изучи.
(Offline)
 
Ответить с цитированием