getTileImageSprite method

Future<DFImageSprite> getTileImageSprite(
  1. DFTileSet tileSet,
  2. int tileIndex,
  3. int row,
  4. int column,
  5. double scale,
)

获取瓦片精灵的某个瓦片

Implementation

Future<DFImageSprite> getTileImageSprite(DFTileSet tileSet, int tileIndex, int row, int column, double scale) async {
  ///print("index:" + index.toString());

  List<DFTile>? tiles = tileSet.tiles;
  String imagePath = this.imagePath + "/";
  double tileWidth = tileSet.tileWidth!.toDouble();
  double tileHeight = tileSet.tileHeight!.toDouble();
  double imageWidth = 0;
  double imageHeight = 0;

  if (tiles != null) {
    DFTile tile = tiles[tileIndex];
    imageWidth = tile.imageWidth!.toDouble();
    imageHeight = tile.imageHeight!.toDouble();
    imagePath = this.imagePath + "/" + tile.image!;

    /// print(imagePath);
  } else {
    imageWidth = tileSet.imageWidth!.toDouble();
    imageHeight = tileSet.imageHeight!.toDouble();
    imagePath = this.imagePath + "/" + tileSet.image!;
  }

  /// Image创建
  ui.Image image = await DFAssetsLoader.loadImage(imagePath);
  DFImageSprite sprite = DFImageSprite(
    image,
    rect: DFRect(0, 0, imageWidth, imageHeight),
    rotated: false,
  );
  sprite.scale = scale;
  sprite.position = DFPosition(
      column * tileWidth * scale + tileWidth / 2 * scale, row * tileHeight * scale + tileHeight / 2 * scale);
  sprite.key = row.toString() + "," + column.toString();
  return sprite;
}