![]() |
Частичная перерисовка bitmapData
Привет!
Есть 10000 мувиков, часть из них статичны, остальные перемещаются. те, которые перемещаются с незаметной глазу скоростью назовём спящими. мувики - картинки 6х6 пикселей. размер видимой части 800х600 и все мувики находятся в ней. хочу распихать это дело по битмапам и перерисовывать только те мувики, которые изменили своё положение с момента последней отрисовки. как "дешевле" это сделать? есть мысль, что нужно переместившийся мувик вырезать и вставить на новую позицию в битмамдате, но не могу придумать, как оптимальнее это сделать с пятью тысячами мувиков. |
1. зачем вообще "мувики", если они — "картинки" и на выходе — битмап?
2. да строго говоря, никак не вырезать. Под ним же может быть другой мувик отрисован, то есть вырезаемый будет не полностью на прозрачном фоне. Так что статичные сразу отрисовываем на битмапдату и храним ее, а всех беспокойных каждый шаг отрисовываем либо на новую прозрачную поверх фона, либо на новую копию фона. |
1. ну ведь наверняка показывать один битмап дешевле, чем десять тысяч.
2. тем мувиком, который "под ним" можно пренебречь, а можно перерисовать - на данном этапе это не важно. важнее разобраться, как картинку каждый раз перерисовывать без вызовов new bitmap, new bitmapdata, и похоже, без draw. просто соль в том, что все 10000 мувиков интегрируются по Верле и проц уже достаточно загружен а с помощью "умного рендера" хочется разгрузить его в отношении графики. |
Цитата:
|
Тем более, что, наверняка, типов "мувиков" гораздо меньше чем 10000, а то и вовсе 1.
|
13300 мувиков.
copyPixels отлично справился Добавлено через 45 часов 54 минуты вот результат http://www.flasher.ru/forum/showthread.php?t=198927 |
| Часовой пояс GMT +4, время: 10:12. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.