Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Быстрый рендеринг большого количества движущихся объектов (http://www.flasher.ru/forum/showthread.php?t=121912)

AL.exe 26.02.2009 03:47

Быстрый рендеринг большого количества движущихся объектов
 
Тему назвал плохо, но не пришло в голову название лучше. Делаю флешку, в ней по экрану будет летать порядка 80-ти шариков, отталкивающихся от краев флешки.

У каждого шарика есть свойство speed:Point, определяющее его вектор скорости.

За отрисовку отвечает класс Renderer, который проходится по массиву с шариками по ENTER_FRAME, перемещает их в соответствии со скоростью и меняет направление вектора движения при столкновении со стенами.

Проблема в том, что уже при 30-ти шариках флешка очень сильно нагружает процессор (макбук так заурчал кулером, что я боялся, как бы он со стола не улетел).

Код показал бы, но сейчас нет к нему доступа. Но там не сложнее того, что я рассказал выше.

Значение FPS установлено в 31. cacheAsBitmap у шариков стоит на всякий случай.

Подскажите, пожалуйста, как можно преодолеть такую чудовищную нагрузку на процессор.

VVall 26.02.2009 03:58

Эта и другие статьи на том же сайте могут помочь: http://www.8bitrocket.com/newsdispla...?newspage=7496

Ictus 26.02.2009 13:15

блин, буков много, не все осилил, на сколько я понял там изобрели новый метод рендеринга но увеличения производительности он не дал, сильно :)
короче нада рисовать все в одину битмапдату с помощью copyPixels

Яски 27.02.2009 18:39

Вложений: 1
Там нечему тормозить.
Сделал тест с сотней
Используется cahceAsBitmap, поэтому зависимости от сложности графики быть не должно.

AL.exe 04.03.2009 02:44

Это я ступил, кстати. У меня объекты еще вращались вокруг своей оси со случайной скоростью (шарики просто с текстурой). Убрал вращеие - стало работать быстро... но некрасиво. Я так понимаю, нужно свой рендерер писать на основе copyPixels и предварительного кеширования спрайтов под разными углами =\

BlooDHounD 04.03.2009 03:48

AL.exe, можно тупо убрать cacheAsBitmap, установленный на всякий случай, и флэш перестанет каждый кадр заниматься кэшированием ваших шариков.

AL.exe 04.03.2009 03:49

Установлен он был на всякий случай после того, как обнаружилось, что идет такая нагрузка. Поставить или убрать - разницы никакой.

BlooDHounD 04.03.2009 11:04

кхм ... странно.


Часовой пояс GMT +4, время: 08:08.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.