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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.09.2010, 19:21
medvedya2 вне форума Посмотреть профиль Отправить личное сообщение для medvedya2 Найти все сообщения от medvedya2
  № 1  
Ответить с цитированием
medvedya2
[+1 09.03.11]

Регистрация: Mar 2010
Сообщений: 128
Question Почему тормозят картинки с альфа каналом?

Перемещаются и вращаются по экрану 100-200 картинок(Bitmap) если не использовать альфа канал то все нормально, а если у картинок сделать фон полностью прозрачным начинаются тормоза.
Все картинки на отдельном спрайте он тоже двигается.
Пробовал способ:
отрисовывать все картинки в одну Bitmap а потом её очищать, в раза 1,5 стало быстрее(что есть очень странно), но все равно тормозить, надо добиться хотя бы 50fps.

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
С отрисовкой графики у флеша всегда были проблемы, и самые большие они как раз при использовании прозрачности (любой, в битмапах, спрайтах и т.д.)... Ваш метод отрисовки все в битмапу как раз один из методов оптимизации. Возможно, вам стоит попробовать сократить число объектов. Либо отрисовывать картинки в BitmapData через setPixel, setPixel32 или setPixels а не через draw (надеюсь, так и делаете), не забывая блокировать и разблокировать битмапу от досрочной прорисовки (lock|unlock)... Ну и не лишним будет гугление на тему оптимизации работы с графикой.

Старый 22.09.2010, 20:37
medvedya2 вне форума Посмотреть профиль Отправить личное сообщение для medvedya2 Найти все сообщения от medvedya2
  № 3  
Ответить с цитированием
medvedya2
[+1 09.03.11]

Регистрация: Mar 2010
Сообщений: 128
сделал так, почему то еще медленней стало
Код AS3:
mBitmapData.lock();
				mBitmapData.fillRect(new Rectangle(0,0,2880,2880),0);
				for each (var o:Monster in Monster.monsters)
				{
					if((Math.abs(int(Hero.X)-o.x-o.size)<900/2)&&(Math.abs(int(Hero.Y)-o.y-o.size)<700/2))
					{
 
 
						var tmpMonster:BitmapData=o.graphicMonster.getChildAt(0).bitmapData;
						for(xForB=0;xForB<tmpMonster.width;xForB++)
							for(yForB=0;yForB<tmpMonster.height;yForB++)
							{
								cForB=tmpMonster.getPixel32(xForB,yForB);
						        mBitmapData.setPixel(xForB,yForB,cForB);//setPixel32*
							}
 
 
					}		
				}
				mBitmapData.unlock();
draw оказался быстрее


Последний раз редактировалось medvedya2; 22.09.2010 в 20:53.
Старый 22.09.2010, 20:40
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 4  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
getPixels() / setPixels() видать несудьба все же..
а еще быстрее будет через copyPixels()

Старый 22.09.2010, 20:56
medvedya2 вне форума Посмотреть профиль Отправить личное сообщение для medvedya2 Найти все сообщения от medvedya2
  № 5  
Ответить с цитированием
medvedya2
[+1 09.03.11]

Регистрация: Mar 2010
Сообщений: 128
с copyPixels() нельзя делать трансформацию, а мне надо еще вращать, хранение всех вариантов повернутой картинки съест всю память.
а там у меня еще анимация где каждый кадр отдельная Bitmap

Старый 22.09.2010, 21:03
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 6  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
тогда только draw()

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

Теги
bitmap , производительность , тормоза
Опции темы
Опции просмотра

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

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


 


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


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