Показать сообщение отдельно
Старый 14.04.2010, 20:56
Tahion вне форума Посмотреть профиль Отправить личное сообщение для Tahion Найти все сообщения от Tahion
  № 4  
Ответить с цитированием
Tahion

Регистрация: Apr 2010
Сообщений: 57
И вы правы мистер Wolsh . А я долго не мог понять что там не 1 битмап :/

Код AS3:
var rows:uint = 3;
var columns:uint = 4;
 
var channels:uint = BitmapDataChannel.GREEN | BitmapDataChannel.BLUE;
var p:Point = new Point( );
 
var bmd:BitmapData = new BitmapData(100, 100, false, 0x00000000);
 
var bmp:Bitmap;
var str:String = "bmp";
var bitmaps:Array = [];
 
for (var i:int = 0; i <  rows * columns; i++)
{	
	bmp = this[str + i] = new Bitmap(bmd.clone());
	bitmaps.push(bmp);
	addChild(bmp);
 
	bmp.y = bmd.height * int(i / columns);
	bmp.x = bmd.width * int(i % columns);
}
 
addEventListener(Event.ENTER_FRAME, enterFrameListener);
 
function enterFrameListener(e:Event = null):void
{	
	p.x++;
	p.y++;
 
	for (var i:int = 0; i <  rows * columns; i++)
	{	
		var _bmp:Bitmap = bitmaps[i];
 
		var bmp:BitmapData = _bmp.bitmapData;
		var p2:Point = p.clone();
		p2.x += _bmp.x;
		p2.y += _bmp.y;
		bmp.perlinNoise(30, 30, 1, 0, true, true, channels, false, [p2]);
	}
 
}
Вообще эта операция perlinNoise очевидно слишком трудоемка для флеша чтобы в ентерфрейме генерировать его. Однократно сгенерировать перлин для придиния определенных эфектов текстуры это еще куда не шло. Но это ... Хотя красиво

Кстати странно что если сделать 1 большой битмап и применять кнему шум то это будет гораздо менее производительно если к нескольким маленьким, даже не сомтря на то что там много лишних действей в цикле


Последний раз редактировалось Tahion; 14.04.2010 в 21:04.