AS3精灵表

min*_*vor 3 sprite actionscript-3

我有一个图像mySprite.png.该图像是一个5x5网格的32x32像素精灵.此图像已加载到项目的库中.

假设我在一个类中有一个render()函数,该类如何从这个精灵表资源中将自己绘制为一个精灵?

Han*_*nto 10

简短的回答是,您需要使用BitmapData.copyPixels()仅将源精灵表中的一小部分复制到屏幕上实际显示的精灵.

就像是:

private function DrawSpriteIndex( displayBitmap:Bitmap, spriteSheet:Bitmap, spriteIndex:int ):void {
  var spriteW:int = 32;
  var spriteH:int = 32;
  var sheetW:int = 5;

  displayBitmap.bitmapData.copyPixels(spriteSheet.bitmapData, 
                                       new Rectangle( (spriteIndex % sheetW) * spriteW, Math.floor(spriteIndex / sheetW) * spriteH, 32, 32),
                                       new Point(0,0)
                                      );
}
Run Code Online (Sandbox Code Playgroud)

您可能会发现这些链接很有用 - 他们在我学习时帮助了我: