2013-01-04 33 views
1

我有一些瓷磚陣列,它們繪製在我的「畫布」上。具有多個對象的矩陣變換比例尺

我知道如何改變我的畫布規模從它的中心:

var m:Matrix = new Matrix(); 
m.translate(-centerX, -centerY); 
m.scale(scaleX, scaleY); 
m.translate(centerX, centerY); 

這將擴大和翻譯瓦的X,Y

var m:Matrix = new Matrix(); 
m.translate(_tile.x,_tile.y); 
m.scale(_scale, _scale); 

但是我怎麼擴大我所有的位圖當我在「畫布」上繪製它們時,從中心切片

回答

0

此代碼顯示如何使用BitmapData.draw方法來縮放和居中切片位圖數據(tile_1是「(0,0)」排列的位圖):

var tile:BitmapData = new tile_1(); 
var canvas:BitmapData = new BitmapData(1000, 1000, true, 0x00FFFFFF); 
var scale:Number = 2; 
canvas.draw(tile, new Matrix(scale, 0, 0, scale, -tile.width*scale/2, -tile.height*scale/2)); 

如果使用另一種方法繪製瓷磚請形容它更爲詳細。

+0

謝謝你的迴應。我的問題有點不同。 我有100x100的瓷磚陣列,我把它們放在我畫的「畫布」上。 我使用轉換來滾動我的瓷磚,而我正在繪製它們。 我想了解如何根據它們在畫布上的位置從中心縮放所有的圖塊。 – somerandomusername

+0

你的意思是「根據它們在畫布上的位置從中心縮放所有的瓷磚」。 ?我的代碼縮放並繪製它,您也可以將轉換添加到繪圖矩陣中,或者我沒有得到您的問題。 – fsbmain