![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Дано:
Найти: Коэффицент на который нужно делить|вычитать "скорость" (которая вычитается из <объекта._x>) чтобы объект двигался с отридцательным ускорением и в конце концов остановился в заданной точке X, по оси абсцисс. name_mc._x = Stage.width;
//ПЕРВОНАЧАЛЬНАЯ ПОЗИЦИЯ ОБЪЕКТА
name_mc.NewPositionX = 0;
//ЭТО И ЕСТЬ ТА САМАЯ ТОЧКА X В КОТОРОЙ ДОЛЖЕН ОКАЗАТЬСЯ ОБЪЕКТ
var interval:Number = 1;
//интервал
var BeginSpeed:Number = 10;
//Начальная скорость
var Speed:Number = BeginSpeed;
//Меняющаяся скорость
if (name_mc._x > name_mc.NewPositionX) {
long = name_mc._x - name_mc.NewPositionX;
//Длина пути
} else if (name_mc._x < name_mc.NewPositionX) {
long = name_mc.NewPositionX - name_mc._x;
//Длина пути
}
t = long / BeginSpeed * interval;
//Время движения = путь / (Скорость*Время)
/***************************************************************************/
function setNewPosition (object) {
if ((object._x <= object.NewPositionX + Speed) && (object._x >= object.NewPositionX - Speed)) {
//ЭТА КОНСРУКЦИЯ IF ИСКЛЮЧАЕТ ДРОЖАНИЕ ОБЪЕКТА
object._x = object.NewPositionX;
clearInterval (object.interval);
} else {
if (object._x > object.NewPositionX) {
object._x -= Speed;
} else if (object._x < object.NewPositionX) {
object._x += Speed;
}
/*СКОРОСТЬ МЕНЯЕТСЯ ЗДЕСЬ, ПОДСКАЖИТЕ ПЛИЗ ФОРМУЛУ*/
// Speed/=<НЕКИЙ КОЭФИЦЕНТ>;//ИЛИ
// Speed-=<НЕКИЙ КОЭФИЦЕНТ>;//ИЛИ
trace (Speed);
}
}
/***************************************************************************/
name_mc.interval = setInterval (setNewPosition, interval, name_mc);
Вроде эта задачка из курса физики, равномерное ускорение Если перефразировать то: скорость должна уменьшаться от ПЕРВОНАЧАЛЬНОЙ скорости(в ПЕРВОНАЧАЛЬНОЙ ТОЧКЕ), до примерно НУЛЯ(в КОНЕЧНОЙ ТОЧКЕ)
__________________
Шаг вперёд, является результатом пинка сзади Последний раз редактировалось iNils; 14.07.2007 в 05:26. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
v - начальная скорость
a - искомое устроение s - перемещение Скорость в конечной точке равна 0: v + a*t = 0; откуда следует v = -a*t; a = - v/t; уравнение движения: s = v*t + a*t*t/2; подставляем a: s = v*t - v*t/2; то есть 2*s = v*t; t = 2*s/v; подставляем t: v = -a*2*s/v; v*v = -a*2*s; a = -v*v/(2*s); a = -.5*v*v/s; Все правильно. |
|
|||||
|
уух... а чем easyOut не угодил? если это только не что-то совсем спецефическое...
![]() |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Цитата:
|
|
|||||
|
А что такое easyOut???
Что, есть встроенный метод реализации ускорения ???
__________________
Шаг вперёд, является результатом пинка сзади |
|
|||||
|
2 Kikasso: нет, настроить ускорение нельзя, и вы об этом знаете..
но если не нужно делать точную физическую модель, то для получения подобного эффекта easyOut.Regular и easyOut.Strong вполне могут подойти... |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|