Просмотр полной версии : Равноускоренное движение
Rasamaha
26.06.2007, 18:25
Господа вопрос следующий. Есть равноускоренное движение, нужно, что бы в определенной точке объект остановился. Вот код:
sc1._x = 69.1;
var X0 = 69.1;
var Vx = -2;
var t = 0;
var a = -1;
_root.onEnterFrame = function() {
sc1._x = X0+Vx*t+a*t*t/2;
t += 0.4;
if (sc1._x<58) {
Vx = V0;
}
};
В нем все в порядке, он работает. Непонятно почему Vx приравненная к V0 его (объект) останавливает. Переменная V0 не создавалась и в формуле ее нет. Так почему все работает?!
delete onEnterFrame вместо Vx = V0; ну и координату сменить на конечную
Rasamaha
26.06.2007, 20:13
Спасиб)) Реально помогло...так учим дальше
Может пригодиться класс Tween.
Подробности в хелпе.
Может пригодиться класс Tween.
Подробности в хелпе.
Tween не даёт возможности делать ускоренное движение.
Можно все упростить, приняв t за 1.
x = 0;
vx = 0;
ax = .1;
function accMove(){
x += vx + ax/2;
vx += ax;
}Добавить проверок, вызывать периодически.
Tween не даёт возможности делать ускоренное движение.
Неправда.
__etc, например? Насколько я понимаю, Tween просчитывает параметры движения в зависимости от ПУТИ, который надо пройти, и от ВРЕМЕНИ, которое должно занять движение, да еще и для разных координат по отдельности. Не совсем то, как если бы задать начальную скорость и ускорение, а потом сказать "поехали".
Ну так твин и занимается движением от времени. График пути можно разбить на x и y, скорость и прочее — константы. И подсунуть твину (или двум, трем и т.д.) соответствующую функцию, описывающую график движения. Этот график при определенных начальных условиях всегда один и тот же.
задача 1:
Есть вода, чайник, спички в буфете, плита. Как скипятить воду?
Залить воду в чайник, поставить на плиту, достать спички, зажечь газ...
задача 2:
Вода в чайнике, чайник на плите, газ горит. Как скипятить воду?
Погасить газ, вылить воду... Тем самым мы упрощаем задачу, сведя ее к предыдущей.
Это из старого журнала "Вокруг Света" фантастический рассказ.
твин тяжёлый и бестолковый. проще написать самому (это можно сказать практически о любом готовом универсальном решении. для частного случая свой код будет легче и быстрее. ну, если не тупить :) )
задача 1:
Есть вода, чайник, спички в буфете, плита. Как скипятить воду?
Залить воду в чайник, поставить на плиту, достать спички, зажечь газ...
задача 2:
Вода в чайнике, чайник на плите, газ горит. Как скипятить воду?
Погасить газ, вылить воду... Тем самым мы упрощаем задачу, сведя ее к предыдущей.
Это из старого журнала "Вокруг Света" фантастический рассказ.
Я просто опровергнул утверждение, что с помощью Tween этого нельзя сделать. Можно, но, согласен, изврат.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.