Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.05.2013, 00:37
relevance4 вне форума Посмотреть профиль Отправить личное сообщение для relevance4 Посетить домашнюю страницу relevance4 Найти все сообщения от relevance4
  № 1  
Ответить с цитированием
relevance4

Регистрация: Nov 2006
Адрес: там
Сообщений: 468
Отправить сообщение для relevance4 с помощью ICQ
По умолчанию Частичная перерисовка bitmapData

Привет!
Есть 10000 мувиков, часть из них статичны, остальные перемещаются. те, которые перемещаются с незаметной глазу скоростью назовём спящими.
мувики - картинки 6х6 пикселей. размер видимой части 800х600 и все мувики находятся в ней.

хочу распихать это дело по битмапам и перерисовывать только те мувики, которые изменили своё положение с момента последней отрисовки.

как "дешевле" это сделать?
есть мысль, что нужно переместившийся мувик вырезать и вставить на новую позицию в битмамдате, но не могу придумать, как оптимальнее это сделать с пятью тысячами мувиков.

Старый 07.05.2013, 01:29
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
1. зачем вообще "мувики", если они — "картинки" и на выходе — битмап?
2. да строго говоря, никак не вырезать. Под ним же может быть другой мувик отрисован, то есть вырезаемый будет не полностью на прозрачном фоне. Так что статичные сразу отрисовываем на битмапдату и храним ее, а всех беспокойных каждый шаг отрисовываем либо на новую прозрачную поверх фона, либо на новую копию фона.
__________________
Reality.getBounds(this);

Старый 07.05.2013, 13:01
relevance4 вне форума Посмотреть профиль Отправить личное сообщение для relevance4 Посетить домашнюю страницу relevance4 Найти все сообщения от relevance4
  № 3  
Ответить с цитированием
relevance4

Регистрация: Nov 2006
Адрес: там
Сообщений: 468
Отправить сообщение для relevance4 с помощью ICQ
1. ну ведь наверняка показывать один битмап дешевле, чем десять тысяч.
2. тем мувиком, который "под ним" можно пренебречь, а можно перерисовать - на данном этапе это не важно. важнее разобраться, как картинку каждый раз перерисовывать без вызовов new bitmap, new bitmapdata, и похоже, без draw.
просто соль в том, что все 10000 мувиков интегрируются по Верле и проц уже достаточно загружен а с помощью "умного рендера" хочется разгрузить его в отношении графики.

Старый 07.05.2013, 14:35
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
как картинку каждый раз перерисовывать без вызовов new bitmap, new bitmapdata, и похоже, без draw
Я вроде ответил в первом пункте. Зачем нужны мувики, если нужны картинки? Странный же вопрос, правда? Зачем Вам тяжелый отображаемый класс, который Вы не собираетесь отображать? Оперируйте битмапдатами "картинок" и все. Используйте быстрый copyPixels() из этих битмапдат в отображаемую. И не надо никаких 10000 создавать каждый раз или отрисовывать мувиклипы методом draw(). У Вас уже есть все битмапдаты, зачем их каждый раз перерисовывать?
__________________
Reality.getBounds(this);

Старый 07.05.2013, 16:01
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 5  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Тем более, что, наверняка, типов "мувиков" гораздо меньше чем 10000, а то и вовсе 1.
__________________
Отряд Котовскага

Старый 07.05.2013, 18:30
relevance4 вне форума Посмотреть профиль Отправить личное сообщение для relevance4 Посетить домашнюю страницу relevance4 Найти все сообщения от relevance4
  № 6  
Ответить с цитированием
relevance4

Регистрация: Nov 2006
Адрес: там
Сообщений: 468
Отправить сообщение для relevance4 с помощью ICQ
13300 мувиков.
copyPixels отлично справился

Добавлено через 45 часов 54 минуты
вот результат http://www.flasher.ru/forum/showthread.php?t=198927

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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