0

截至目前,我正在尝试为我正在创建的游戏创建平铺效果。我正在使用图块表,并且正在将图块加载到精灵中,就像这样...

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

var tileImage 是位图数据。30 是要移动的像素数。那么 tWidth 和 tHeight 是矩形的大小。这是 30x30

这就是我在瓷砖上扮演角色时更改位图的方法

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

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

我的问题是......

它完全删除了旧图块,但新图块的位置比旧位图出现的位置更靠右。

我的平铺表只有 90 像素宽 x 30 像素高。最重要的是,我的新瓷砖似乎画在旧瓷砖的后面。有没有更好的方法来完善这一点。

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

4

1 回答 1

1

您可以尝试将整个 tilesheet 加载到您的 sprite 中,然后在scrollRect每次需要时重新定义该属性。

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

请注意,您不能只编辑scrollRect.x、或; 您每次都必须重新定义一个新的 Rectangle 。.y.width.height

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

您可以阅读Grant Skinner的这篇优秀文章,了解有关scrollRect.

于 2010-01-28T18:37:02.670 回答