2009-12-30 262 views
0

截至目前,我正在嘗試爲我正在創建的遊戲創建拼貼效果。我正在使用瓷磚,我正在將瓷磚加載到精靈像這樣...更改小精靈位圖

this.graphics.beginBitmapFill(tileImage); 
this.graphics.drawRect(30, 0,tWidth ,tHeight); 

var tileImage是bitMapData。 30是移動像素點的數量。那麼tWidth和tHeight是矩形的大小。這是30×30

這是我做的更改位圖時,我的角色在瓷磚

this.graphics.clear(); 
this.graphics.beginBitmapFill(tileImage); 
this.graphics.drawRect(60, 0,tWidth ,tHeight); 

我清除精靈畫布。然後我重寫到tileImage的另一個位置。

我的問題是....

它消除了舊磚完全,但新的瓦片位置更遠的右側,然後在舊的位圖出現了。

我的瓷磚表只有90px寬,30px高。最重要的是,我的新瓷磚顯示在舊瓷磚的後面。有沒有更好的方法來完善這一點。

再次,我要的是位圖改變顏色

回答

1

你可以嘗試加載整個tilesheet在你的精靈,然後每次需要時間重新定義scrollRect財產。

this.scrollRect = new Rectangle(30, 0, tWidth ,tHeight); 

請注意,你不能只是編輯scrollRect.x.y.width.height;你必須每次重新定義一個新的Rectangle。

使用scrollRect可能會更快地重繪部分位圖。

有關scrollRect的更多信息,您可以閱讀this excellent article from Grant Skinner

+0

不要忘記,即使設置了scrollRect,顯示對象的整個區域也將被重新渲染,除非您還設置了cacheAsBitmap。 – aaaidan 2010-04-06 03:45:24

+0

檢出:http://files.jacksondunstan.com/articles/629/CacheAsBitmapTest.swf – aaaidan 2010-04-06 03:46:54

+0

(PS。該鏈接必須用調試閃存播放器查看,或者它沒有幫助...) – aaaidan 2010-04-06 03:47:19