![]() |
Быстрый рендеринг большого количества движущихся объектов
Тему назвал плохо, но не пришло в голову название лучше. Делаю флешку, в ней по экрану будет летать порядка 80-ти шариков, отталкивающихся от краев флешки.
У каждого шарика есть свойство speed:Point, определяющее его вектор скорости. За отрисовку отвечает класс Renderer, который проходится по массиву с шариками по ENTER_FRAME, перемещает их в соответствии со скоростью и меняет направление вектора движения при столкновении со стенами. Проблема в том, что уже при 30-ти шариках флешка очень сильно нагружает процессор (макбук так заурчал кулером, что я боялся, как бы он со стола не улетел). Код показал бы, но сейчас нет к нему доступа. Но там не сложнее того, что я рассказал выше. Значение FPS установлено в 31. cacheAsBitmap у шариков стоит на всякий случай. Подскажите, пожалуйста, как можно преодолеть такую чудовищную нагрузку на процессор. |
Эта и другие статьи на том же сайте могут помочь: http://www.8bitrocket.com/newsdispla...?newspage=7496
|
блин, буков много, не все осилил, на сколько я понял там изобрели новый метод рендеринга но увеличения производительности он не дал, сильно :)
короче нада рисовать все в одину битмапдату с помощью copyPixels |
Вложений: 1
Там нечему тормозить.
Сделал тест с сотней Используется cahceAsBitmap, поэтому зависимости от сложности графики быть не должно. |
Это я ступил, кстати. У меня объекты еще вращались вокруг своей оси со случайной скоростью (шарики просто с текстурой). Убрал вращеие - стало работать быстро... но некрасиво. Я так понимаю, нужно свой рендерер писать на основе copyPixels и предварительного кеширования спрайтов под разными углами =\
|
AL.exe, можно тупо убрать cacheAsBitmap, установленный на всякий случай, и флэш перестанет каждый кадр заниматься кэшированием ваших шариков.
|
Установлен он был на всякий случай после того, как обнаружилось, что идет такая нагрузка. Поставить или убрать - разницы никакой.
|
кхм ... странно.
|
| Часовой пояс GMT +4, время: 08:08. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.