Руководство для создания игр с помощью Flash. Физика. Скорость и векторная скорость

Физика является отраслью науки, которая изучает и описывает поведение объектов в природе на наиболее фундаментальном уровне. Есть некоторые взаимодействия и события, которые для описания которых используется физика:
  • Падение объекта на грунт (вспомните Исаака Ньютона и его яблоко)
  • Действие электрона на протон
  • Электрический поток
  • Движение планет

Основные понятия: скорости, быстроты и ускорения; законы Ньютона; гравитация; и трение.
Законы сохранения энергии или импульса.

Вектора представляют собой математические объекты, которые содержат две части информации: величина (также называемое скалярным значением) и направление. 

Скорость: отношение пройденного расстояния и времени, затраченного на преодоление этого расстояния. Математически, это записывается в виде уравнения скорость=расстояние/на время. 


Flash не является средой, в основе которой лежит время – в его основе лежат кадры. Для пользователя Flash один кадр может быть принят как одна единица времени. Таким образом (как вы увидите на вашем экране, если все сделаете правильно), для нас удобно заменить каждое вхождение переменной времени в уравнении переменной для фреймов. Например, если расстояние=скорость*время, то в новой форме записи это будет выглядеть как расстояние=скорость*кадры. (Другими словами, скорость больше не равна 10 миль/час, а равна 10 единиц/фрейм). Например, если клип перемещается на 30 единиц за два фрейма, то его скорость составляет 30 единиц/2 фрейма = 15 единиц/фрейм.

xmov =3;
ymov =2;

angle =Math.atan2(ymov,xmov)*180/Math.PI;
car._rotation =angle;

_root.onEnterFrame =function (){
 car._x +=xmov;
 car._y +=ymov;

Мы знаем, что мы можем использовать две стороны прямоугольного треугольника для нахождения угла, образуемого траекторией автомобиля и осью x. Ключ состоит в том, чтобы думать о горизонтальной и вертикальной сторонах треугольника как о сформированных скоростями xmov и ymov, соответственно.

По умолчанию скорость кадров во Flash составляет 12 fps. Человеческий глаз обманывается в предположении, что объекты двигаются непрерывно, в то время как они в действительности просто появляются в различных местах. Рост скорости смены кадров увеличивает количество появлений в секунду, что делает движение более гладким и обманывает глаз еще больше. Если скорость процессора на компьютере, где запускается SWF, не соответствует интенсивности вычислений кода ActionScript, то скорость кадров упадет, в то время как фильм будет продолжать воспроизводиться. Так что ключ состоит в поиске хорошей скорости кадров, которая будет обеспечивать намеченную скорость на большинстве компьютеров. В ходе многочисленных экспериментов и реального мирового опыта, я обнаружил, что 24 fps хорошо работает для всех игр. Например, автомобиль перерисовывается в новой позиции 24 раза в секунду. Скорость кадров является транспортным средством (нечего не значащая игра слов), с помощью которого мы обманываем человеческий глаз в предположении, что автомобиль движется непрерывно, хотя в действительности движение происходит дискретно.