![]() |
Плавное движение растра
Народ. Подскажите как вы боритесь с подергиваниями при необхоимости равномерно перемещать больших и средних размеров растр?
У меня проблема, аналагична этой http://www.flasher.ru/forum/showthre...E2%E0%ED%E8%E5. Я перепробывал всё, что советовалось в выше приведенном линке. Только в моем случае, мне нужна создать имитацию скорости, не особо большой. Делаю так, у меня есть псд отдного колышка забора. Я их размножываю, получая 3 длинных части забора, 2е из которых распологаются на экране, а 3я за ним. Сдвигаю на EnterFtame все 3 части, и когда 1я скрывается за экраном, перекидваю её за экран вправо, продливая забор, и так по кругу. Так вот, подергивания и как будто мерцания преследуют сие действо. У меня уже навязчивая идея попробовать BitmapData.scroll(). Посдкажите что-нибудь! |
Сори. Несколько не по вашему вопросу.
А мерцание происходит при удалении - создании одного из кусков забора? |
Нет, добавляются они перед анимацией. И дефекты движения, включая,
своеброзное мерцание, скорее даже подергивание, происходят при движении. |
Насколько я понимаю - тут решили эту проблему: http://tmgame.mail.ru/
Вы бы кусочек маленький исходников выложили, где имменно происходит "передергивание". |
Там и при меньших скоростях дергается..
В общем, кончено, наименьшее подергивание происходит при работе с Битмапом, ещё вечером попробую BitmapData.scroll(), хотя думаю разницы не будет. |
Лучше избегать небольших скоростей и выравнивать итоговые координаты под целый пиксель. Но если сильно необходимо двигать с очень маленькой скоростью, то нарисуйте все части забора в один Bitmap и двигайте его по дробным частям пикселя. Чтобы забор не съедал много памяти, можно создать только один кусок, а на каждый кадр перерисовывать. В итоге что-то типа:
Код AS3:
|
Я когда переходил на AS3 тоже заметил этот неприятный глюк.. . По моему мнению происходит он изза того что в AS2 у координат был тип Number и соответственно мы могли двигать на полпикселя объекты, а в AS3 тип - int и мы на полпихеля соответственно не подвинем...
BitmapData.scroll() тоже не поможет так как тоже работает только с целыми значениями смещения короче полная попа. Единственный совет не забывать включать Smoothing у картинки |
Проще не париться и воткнуть зацикленый кусок видео.
|
Цитата:
|
Цитата:
Я сдвигаю по 9 пикселей за кадр, и по целым числам: Код AS3:
UPD: ZlPredator, я попробою ваш подход (признаюсь он несколько мне не ясен в силу отстутвия опыта работы с битмапой) и отпишусь, хоть там несколько ошибок, но выглядит очень лаконично! В общем, подитоживая, должен вам сказать, что оба метода работают с одинакомыми дефектами, только вот возможно ZlPredator-а метод меньше кушает памяти.. Не проверял, но резултат не впечатлил. |
| Часовой пояс GMT +4, время: 16:08. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.