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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.03.2011, 22:55
Djuice вне форума Посмотреть профиль Отправить личное сообщение для Djuice Найти все сообщения от Djuice
  № 1  
Ответить с цитированием
Djuice
 
Аватар для Djuice

Регистрация: Dec 2010
Сообщений: 9
По умолчанию Динамический фон

Доброго времени суток! Я делаю динамический фон для игры. Рандомно на большой мувиклип "набрасываю" маленькие мувики. Рандом также и по скейлу. Потом с полученного мувика делаю битмап через битмапдату
Код AS3:
_data_fon3.draw(fon1);
fon_bitmap.bitmapData = _data_fon3;
Проблемма в том, что очень долго формирует этот фон. Пробовал набрасывать прямо на битмапдату через copyPixels, но почему-то не видит альфа-канал и альфу перебрасывает в простой белый. Какие будут предложения?

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

Регистрация: Oct 2010
Адрес: Новосиб
Сообщений: 122
Цитата:
Сообщение от Djuice Посмотреть сообщение
copyPixels, но почему-то не видит альфа-канал и альфу перебрасывает в простой белый.
Может нужно указать правильный цвет заливки BitmapData? 0x00000000

Старый 22.03.2011, 00:08
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Правила про уважительное отношение читали? Оба?
А кода не хватает не только для того, чтобы делать предположения о его происхождении, но и о том, что происходит с битмапдатой / копированием. Так что, в любом случае, нужно видеть именно то место, которое либо не работает, либо работает медленно и т.п.
__________________
Hell is the possibility of sanity

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

Регистрация: Dec 2010
Сообщений: 9
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Правила про уважительное отношение читали? Оба?
А кода не хватает не только для того, чтобы делать предположения о его происхождении, но и о том, что происходит с битмапдатой / копированием. Так что, в любом случае, нужно видеть именно то место, которое либо не работает, либо работает медленно и т.п.
Сейчас:
Код AS3:
var _data_fon3:BitmapData = new BitmapData(Rozmirnist_game.x * Size_of_tile, Rozmirnist_game.y * Size_of_tile);
//Мувик
fon1 = new MovieClip();
fon1.graphics.beginFill(0x6F4F29, 1);
fon1.graphics.drawRect(0, 0, point.x, point.y);
fon1.graphics.endFill();
//Рандом
var temp_mc1:MovieClip;
var Rand_1:Number;
var Rand_3:Number;
var Rand_4:Number;
for (var i:int = 0; i < iteracii; i++) 
{
	for (var j:int = 0; j < For_fon1.length; j++) 
		{
			temp_mc1 = new For_fon1[j]() as MovieClip;
			Rand_1 = Math.random();
			Rand_3 = Math.random();
			Rand_4 = Math.random();
			temp_mc1.scaleX = temp_mc1.scaleY = 0.8 + Rand_1;
			temp_mc1.x = point.x * Rand_3;
			temp_mc1.y = point.y * Rand_4;
			fon1.addChild(temp_mc1);
		}
}
_data_fon3.draw(fon1);//битмапдата с мувика
fon_bitmap.bitmapData = _data_fon3;
fon1 = null;
А вот с копипиксел:
Код AS3:
_data_fon3 = new BitmapData(St.Rozmirnist_game.x * St.Size_of_tile, St.Rozmirnist_game.y * St.Size_of_tile , false, 0x6F4F29);
//Рандом
var temp_mc1:MovieClip;
var Rand_1:Number;
var Rand_3:Number;
var Rand_4:Number;
for (var i:int = 0; i < iteracii; i++) 
{
	for (var j:int = 0; j < For_fon1.length; j++) 
		{
			temp_mc1 = new example() as MovieClip;
                        Rand_1 = Math.random();
                        Rand_3 = Math.random();//alfa
                        Rand_4 = Math.random();//X
                        temp_mc1.scaleX = temp_mc1.scaleY = 0.5 + Rand_1;
                        var data:BitmapData = new BitmapData(temp_mc1.width, temp_mc1.height);
                        data.draw(temp_mc1);
                        var pp:Point = new Point((int)(point.x * Rand_3), (int)(point.y * Rand_4));
                        _data_fon3.copyPixels(data, data.rect, pp,data,new Point(0,0),true);
		}
}
fon_bitmap.bitmapData = _data_fon3;
Первый случай - медленный слишком, Второй - не копирует альфу.

Добавлено через 12 минут
Код AS3:
var data:BitmapData = new BitmapData(temp_mc1.width, temp_mc1.height,true,0x00000000);
попробовал вот так. Теперь нормально, с альфой копирует, но по времени приблизительно также, как и мувиком. А вот теперь уж не знаю как сделать по-другому.

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

Теги
bitmap , bitmapdata , BitmapData.draw , Динамический фон
Опции темы
Опции просмотра

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

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


 


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


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