我正在尝试制作一个基于图块的AS3游戏,该游戏使用PNG图像作为地图的基础,从图书馆加载它们并将数据转换为数据,每个数据像素都是一个单独的图块。基本上,如果我有一个128x128像素的PNG,比如说绿色像素在我的数组中被转换为“GRASS”,那么我可以循环遍历数组并相应地将贴图添加到地图movieclip中。
我查看了ByteArray类,我似乎无法将数据解码为可用的格式。如果有人有解决方案,请告诉我。
答案 0 :(得分:3)
BitmapData课程似乎就像你要找的那样。确保库中的图像具有自己的类名,并且它的基类是Bitmap(在属性中),然后创建图像的实例,并使用getPixel循环遍历其位图像素数据。
这样的事情:
var image:Bitmap = new MyBMP();
var bmd:BitmapData = image.bitmapData;
for(var y:int=0; y < bmd.height; ++y)
{
for(var x:int=0; x < bmd.width; ++x)
{
var pixelValue:uint = bmd.getPixel(x, y);
trace(pixelValue.toString(16));
// Test if the pixelValue matches the colour you want.
}
}
请注意,如果您使用的是Alpha通道,请务必使用getPixel32。