![]() |
Тряска экрана
Добрый день. Занимаюсь созданием в приложении эффекта тряски экрана (от взрыва). Если ставить сдвиг координат "поля боя" просто по таймеру или энтерфрейму, на слабых компах приложение подтормаживает из-за величины этого самого поля боя.
Хотелось бы услышать мнение спецов, как лучше реализовать такой эффект с точки зрения именно производительности. |
1. Трясти битмапу со снимком чуть больше видимой облсти, например, совсем не напряжно.
Снимок можно обновлять, если важна анимация. 2. Или битмапу держать на месте, а "трясти" -- вырезая кусок с разными сдвигами и поворотами с помощью матрицы, передаваемой в Bitmapdata:draw |
Странно, почему-то битмапа даёт такой же результат. При том, что отрисовываю её только раз.
|
Покажите код отрисовки и тряски, коли не слишком секретен.
|
Скрывайте всё, кроме битмапы при тряске.
|
отрисовываю и ставлю таймер:
Код AS3:
Код AS1/AS2:
|
Странно. Это должны быть НУ УЖ ОЧЕНЬ слабые машины, чтобы затормозить от такой операции.
Может, вызываете doShake чаще, чем кажется или где-то еще утекает? Очень быстрый способ это BitmapData:copyPixels. Для такой простоя тряски подойдет. Сохраняете исходную битмапку и на каждом кадре строгаете новую. Ну или можно отрисовать две и менять их у битмапы. |
А если битмапу не добавлять, тормоза уйдут?
И у вас оно трясётся тольько 4 раза - это довольно мало. А отрисовка в битмапу и удаление/добавление старого - вообще-то ёмкая операция. Попробуйте тряхнуть раз 100. Если будет трястись энергичнее - видно для 4-й трясок способ плохой %) |
ChuwY, машина не слабая, но есть возможность разворачивать приложение на весь экран. Вот тогда на мониторе 1600*900 особенно заметно. И даже если я оставляю 4 встряски, за это время происходит анимация, то есть мне нужно перерисовывать битмапу каждый раз, и copyPixels не прокатят.
-De-, да, тогда тормоза уйду. Если трясти 100 раз, эффект тот же, или даже чуть лучше. |
| Часовой пояс GMT +4, время: 17:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.