更改精灵位图

时间:2009-12-30 22:45:37

标签: actionscript-3 bitmap bitmapdata tiling

截至目前,我正在尝试为我正在制作的游戏创建平铺效果。我正在使用一个瓷砖表,我正在将瓷砖加载到精灵中,就像这样......

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

var tileImage是bitMapData。 30是要移动的像素数。然后tWidth和tHeight是矩形的大小。这是30x30

这是我在瓦片上的角色时更改位图的方法

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

我清除精灵画布。然后我重写到tileImage上的另一个位置。

我的问题是......

它完全删除了旧图块,但新图块位于更靠右边的位置,然后是旧位图出现的位置。

我的瓷砖表只有90px宽,30px高。最重要的是,我看来我的新瓷砖是在旧瓷砖后面绘制的。有没有更好的方法来完善它。

再次,我想要的是位图改变颜色

1 个答案:

答案 0 :(得分:1)

您可以尝试在精灵中加载整个tileheet,然后在每次需要时重新定义scrollRect属性。

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

请注意,您不能只修改scrollRect.x.y.width.height;你必须每次重新定义一个新的矩形。

使用scrollRect可能会比重绘部分位图快得多。

您可以阅读this excellent article from Grant Skinner了解有关scrollRect

的更多信息