![]() |
Плавное движение по точкам
Делаю сейчас одну игрушку в которой объект движется по заданному пути, от точки к точке. Но на большой скорости становится заметным угловатость этого движения. Как можно это исправить? Чтобы объект на любой скорости двигался плавно?
Вот код который есть пока: Код AS3:
|
я делал через Bezier
|
а кокой нибудь примерчик кода можно?
|
не найду =)
но суть такова - по точкам строим кривую безье (я пользовался безье Дембицкого) а дальше по ENTER_FRAME делаем приращение времени (скорость), получаем новую точку на нашей кривой, и размещаем там объект |
|
|
а можно у них как то эту библиотеку вытянуть без настройки SVN? работаю в Flash IDE
|
|
извиняюсь за нубовский вопрос, но как открыть swc? Никогда с ним не работал. Пробовал при помощи winRar, но классов внутри не обнаружил, только xml и swf
|
Первая страница гугла: http://www.infogroupindia.com/blog/posts/513
|
Может быть TweenLite поможет? http://www.greensock.com/as/swf/EaseVisualizer.swf
|
to kseniya та нет, это не то немного. Тут нужно именно построение кривой.
Зашёл на сайт bezier.ru - на их сайте есть хорошие демки, только вот не могу исходники к ним найти. Может есть возможность глянуть на код исходника, в частности интересует пример № 6 |
Для интерполяции движения по ключевым точкам больше подойдут не кривые Безье, а, например, сплайны Катмулла-Рома. Вот пример с функцией построения сплайна. Правда он на корейском :) Но исходники достаточно очевидные.
|
ну честно сказать немного не понял, в чём преимущества Катмулл-Рома? По-моему точки на примере проставляет точно также
|
Если реализовывать с нуля, то сплайны Катмулл-Рома проще. Возможно и оптимальнее по вычислительным затратам.
|
Но всё-таки хотелось бы покапаться в демках от Bezier.ru! Ну или хотя бы какой нить простенький примерчик с реализацией движения по точкам, а то как то странно, вроде хороший сайт, а примеров использования класса нету
|
Цитата:
Код AS3:
Надо мышкой кликать, потом будет шарик по мышиной бизерной кривой летать. |
Пошарив по нету нарыл интересную библиотеку по имени Grape.
Поюзав примеры понял что штука интересная и вполне подходит под мои нужды, но всё таки осталось пару вопросов которые я пока не выяснил: 1. Как остановить процесс рендеринга? Я трейсю события TICK, но он продолжает тикать даже после завершения анимации. Должен ли я просто удалить слушатель в функции COMPLETE? Будет ли срабатывать сборщик мусора после удаления слушателя, или я должен сделать что-то еще, чтобы остановить анимацию? 2. Как я могу включить реверс анимации / изменить скорость анимации в любой момент времени? Я имею в виду, представьте, 2 шара, движущегося в разных направлениях, когда они ударяются друг от друга, они изменяют своё движения на противоположное, как я могу сделать что-то вроде этого? 3. Как я могу остановить анимацию? 4. Какую информацию я могу получить от объектов во время анимации? Например, мне нужно знать, какое расстояние прошёл объект, передаваемый по кривой и сколько осталось идти. Или как я могу вытянуть свойства объекта на пути? Например, как сделать увеличение объекта, когда он движется по кривой? 5. Как я могу заставить объект поворачиваться на пути - чтото типа "Orient to path"? Добавлено через 3 минуты Вот ссылка на саму библиотеку : http://code.google.com/p/grape-as3/ Немного описаловки и примеров: http://blog.generalrelativity.org/ac...comment-166445 Могу выслать свой класс по работе с этим Grape, если кому надо. |
Чтобы повернуть обьект(object) в сторону точки (NextPoint) подойдёт вот этот код:
(за вами остаётся только каждый раз вычислять координату обьекта и точку в которую он будет двигаться) Код AS3:
Код AS3:
|
| Часовой пояс GMT +4, время: 10:37. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.