PDA

Просмотр полной версии : Алгоритм динамического построения маршрута.


obiz
08.10.2008, 12:00
У меня вопрос исполняемости алгоритма на базе ActionScript.
Задачка такая: есть 2 мувика. На обоих обьект движется по направляющей траектории. Допустим в течении 40 кадров. Оба мувика квадратные и размером пусть 40 на 40 пикселей. Разница в том что наодном обьект двигается по прямой, на другом по дуге 90 градусов (поворачивает на 90 градусов). Теоретически, копированием и вращением этих 2-х мувиков можно составить произвольный маршрут и пустить по нему некий обьект, попеременно запуская то один то другой шаблон и подставляя туда свой обьект. Но это всё в теории.
Вопрос: Как может выглядить этот алгоритм именно в рамках флеша.
Например:
1-собирается первый мувик из 2 слоёв, экспортируется в XXX(в символ же не экспортнуть?)
2-то же со вторым
3- собирается "маршрут" путём копирования начальных ХХХ оьбектов каждый в отдельную сцену... и запускается сцена за сценой.
... Есть у меня подозрения, что делается это как-то иначе..
Поправка - задавать путь матиматически не подходит, будем считать что 2 кусочка имеют сложнейшую неалгоритмизируемую траекторию.
Заранее спасибо уже за то, что дочитали! =)))

chingachgoog
08.10.2008, 13:37
Алгоритм может быть такой:

1) собирается заготовка пути (все правильно - это тупая анимация по направляющей, где двигаться будет некий мувик-поводок)
2) из заготовок пути можно собрать конечный путь (его можно сделать даже невидимым)
3) считываем глобальные координаты текущего мувика-поводка и задаем их конечному объекту

Ну и постоянно контролировать какой мувик-поводок является текущим и с какого момента их переключать и запускать.

obiz
08.10.2008, 14:26
Вот.. Возникают следющие вопросы:
1) В каком виде хранить мувики-поводки (МП)?
2) ... примерно представляю..
3) вот про глобальные координаты.. как запускать невидимый 40 кадровый МП нескоьлко раз, в процесе прогона основной сцены?

chingachgoog
08.10.2008, 14:56
Что значит в каком виде? Не понимаю вопроса. Раскладываете как их надо (п.2) и все. Ну _visible=false можно сделать.
Запускать мувик просто - play() :) Вся хитрость как отслеживать, кто текущий - но это уже ваша тактическая головная боль, а сам принцип я показал.

obiz
08.10.2008, 15:27
да.. Я как доберусь до кода - задам конкретные вопросы.. Спасибо )