2009-10-19 3 views
1

Это для игры во Flash AS3 только проект.Как вы анимируете экранный объект в дуге в AS3?

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

Каков наилучший способ рассчитать координаты x и y ракеты для каждого кадра?

+0

Это не совсем ответ, но, возможно, посмотрите http://www.dl.ket.org/physicshon/chapters/03_1-3/. Если вы опускаетесь на дно, это упражнение со вспышкой, развивающее снаряд – Allan

ответ

5

Ну, дуга - это кусок круга. Общие формулы для окружности являются

x = r * cos(a) + cx 
y = r * sin(a) + cy 

Где r это радиус окружности, a угол по окружности (в радианах), а cx и cy являются координаты центра окружности.

Таким образом, каждый кадр должен увеличивать угол (a) и пересчитывать позицию с помощью этих формул.

Трюк будет определять соответствующий радиус и центральные точки. Вероятно, вы могли бы найти алгоритм, который бы нашел центральную точку на основе фиксированного радиуса.

Редактировать: получить ту же скорость при разных радиусах.

Чтобы получить скорость (в пикселях/сек) от угловой скорости (рад/сек)

v = Δa * r 

Так что, если мы выбираем некоторый v, то Δa = v/r, где V есть некоторая постоянная, а г есть радиус окружности.

+0

Как вы получаете постоянную скорость на разных расстояниях. Когда я увеличиваю угол с постоянной скоростью, ракета ускоряет его дальше? –

+0

... он не должен этого делать ... Вы уверены, что ваш угол постоянно растет? и что ваш угол - это единственное, что меняется в коде? –

+0

Если диаметр круга (расстояние) больше, разве ракета не должна двигаться дальше по окружности для каждого приращения угла? –

2

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

Если вы действительно заботитесь имея реалистичное движение, исследование some physic equations.

Если вы просто хотите иметь какое-то простое и мультяшное движение, то использование bezier/bezierThrough TweenMax будет чрезвычайно простым. См. Примеры в its plug-in explorer.


Update: Для простого пути промежуточных кадров, Grape Animation Library кажется слишком большой!

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