![]() |
|
||||||||||
|
|||||
|
[IMG]http://img297.**************/img297/874/55132851vq9.th.jpg[/IMG]
Черные линии примерно описывают предполагаемую траекторию. Как добиться "такого" небольшого искажения прямой траектории?
__________________
O God! The Aftermath. |
|
|||||
function myFunction(a, b, c, d):Void { // a - величина отклонения по оси x // b - велечина отклонения по оси y // c и d - для отслеживания порога отклонения, изначально должны бать равны if (c == d) { // Пока порог не достигнут двигаемыйОбъект._x /*или что там*/+= a; двигаемыйОбъект._y += b; } else { двигаемыйОбъект._x -= a; двигаемыйОбъект._y -= b; }; if (y /*или*/x == с /*или*/d) { c /*или*/d = любое другое значение; }; }; Раньше с координатами толком не работал, так что если сморозил какую-нибудь глупость...
__________________
(nLauthing.time.sec == 60) ? nLife.time.hours++ : break; |
|
|||||
|
Я на самом деле не понял ничего) Думаю как то проще можно, по крайней мере в одну функцию.
__________________
O God! The Aftermath. |
|
|||||
|
Как то раз собрались 4 флешера и стали долго и упорно обсуждать эту тему... =)
В общем, пришли вот к какому выводу: - пишем функция, высчитывающую координаты точек - сохраняем эти точки в массив (можно 2 массива - для _x и для _y) - пишем функцию onEnterFrame или setInterval и меняем координаты клипа на те, что в массиве Хотите посмотреть - смотрите (лучше сразу последнюю страницу) очень длинная тема
__________________
...вселенская грусть |
|
|||||
|
Так, до меня дошло, что я написал полную ахинею ))
Значит, сначала переменные: var nA:Number = 5; // Смещение по одной оси (в данном случае - x) var nB:Number = 15; // Максимальное отклонения от прямой по другой оси var nCounter:Number = 0; // Счетчик, следящий за отклонением var bEnd:Number = 0; // Переключатель, следящий за тем же //В принципе, они могут быть заключены в массив, но это уж на чей вкус function имяФункции(a, b):Void { mcMC._x += a; // Здесь та ось, по которой движение постоянно (bEnd == 0) ? mcMC._y += b-nCounter : mcMC._y -= b-nCounter; // Здесь проверяется, дошла ли кривая до максимальной точки отклонения; в зависимости от этого, x идет либо вниз, либо вверх (bEnd == 0) ? (nCounter < b) ? nCounter++ : bEnd = 1 : nCounter--; // То же самое, но с nCounter - он постепенно увеличивается и уменьшается, обеспечивая плавность if(nCounter == 0) { clearInterval(nInterval); // Когда объект вернулся на исходную x - прекратить. } }
__________________
(nLauthing.time.sec == 60) ? nLife.time.hours++ : break; |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|