diff --git a/packages/flame_tiled/lib/src/renderable_layers/tile_layers/hexagonal_tile_layer.dart b/packages/flame_tiled/lib/src/renderable_layers/tile_layers/hexagonal_tile_layer.dart
index 944c3d16239..97dfccd65e4 100644
--- a/packages/flame_tiled/lib/src/renderable_layers/tile_layers/hexagonal_tile_layer.dart
+++ b/packages/flame_tiled/lib/src/renderable_layers/tile_layers/hexagonal_tile_layer.dart
@@ -96,7 +96,7 @@ class HexagonalTileLayer extends FlameTileLayer {
}
final flips = SimpleFlips.fromFlips(tileGid.flips);
- final scale = size.x / src.width;
+ final scale = size.x / map.tileWidth;
final anchorX = src.width - halfMapTile.x;
final anchorY = src.height - halfMapTile.y;
diff --git a/packages/flame_tiled/lib/src/renderable_layers/tile_layers/isometric_tile_layer.dart b/packages/flame_tiled/lib/src/renderable_layers/tile_layers/isometric_tile_layer.dart
index f5d573dd699..78c75a612ba 100644
--- a/packages/flame_tiled/lib/src/renderable_layers/tile_layers/isometric_tile_layer.dart
+++ b/packages/flame_tiled/lib/src/renderable_layers/tile_layers/isometric_tile_layer.dart
@@ -61,7 +61,7 @@ class IsometricTileLayer extends FlameTileLayer {
.translate(spriteOffset.dx, spriteOffset.dy),
);
final flips = SimpleFlips.fromFlips(tileGid.flips);
- final scale = size.x / src.width;
+ final scale = size.x / map.tileWidth;
final anchorX = src.width - halfMapTile.x;
final anchorY = src.height - halfMapTile.y;
diff --git a/packages/flame_tiled/lib/src/renderable_layers/tile_layers/orthogonal_tile_layer.dart b/packages/flame_tiled/lib/src/renderable_layers/tile_layers/orthogonal_tile_layer.dart
index 7f9d971e54c..f8eaac6351d 100644
--- a/packages/flame_tiled/lib/src/renderable_layers/tile_layers/orthogonal_tile_layer.dart
+++ b/packages/flame_tiled/lib/src/renderable_layers/tile_layers/orthogonal_tile_layer.dart
@@ -60,7 +60,7 @@ class OrthogonalTileLayer extends FlameTileLayer {
);
final flips = SimpleFlips.fromFlips(tileGid.flips);
- final scale = size.x / src.width;
+ final scale = size.x / map.tileWidth;
final anchorX = src.width - halfMapTile.x;
final anchorY = src.height - halfMapTile.y;
diff --git a/packages/flame_tiled/lib/src/renderable_layers/tile_layers/staggered_tile_layer.dart b/packages/flame_tiled/lib/src/renderable_layers/tile_layers/staggered_tile_layer.dart
index 378ac42c7f6..ba5855371af 100644
--- a/packages/flame_tiled/lib/src/renderable_layers/tile_layers/staggered_tile_layer.dart
+++ b/packages/flame_tiled/lib/src/renderable_layers/tile_layers/staggered_tile_layer.dart
@@ -96,7 +96,7 @@ class StaggeredTileLayer extends FlameTileLayer {
}
final flips = SimpleFlips.fromFlips(tileGid.flips);
- final scale = size.x / src.width;
+ final scale = size.x / map.tileWidth;
final anchorX = src.width - halfMapTile.x;
final anchorY = src.height - halfMapTile.y;
diff --git a/packages/flame_tiled/test/assets/oversized_tiles_hexagonal.tmx b/packages/flame_tiled/test/assets/oversized_tiles_hexagonal.tmx
new file mode 100644
index 00000000000..822626bacf4
--- /dev/null
+++ b/packages/flame_tiled/test/assets/oversized_tiles_hexagonal.tmx
@@ -0,0 +1,11 @@
+
+
diff --git a/packages/flame_tiled/test/assets/oversized_tiles_isometric.tmx b/packages/flame_tiled/test/assets/oversized_tiles_isometric.tmx
new file mode 100644
index 00000000000..70c10f1a1a2
--- /dev/null
+++ b/packages/flame_tiled/test/assets/oversized_tiles_isometric.tmx
@@ -0,0 +1,11 @@
+
+
diff --git a/packages/flame_tiled/test/assets/oversized_tiles_orthogonal.tmx b/packages/flame_tiled/test/assets/oversized_tiles_orthogonal.tmx
new file mode 100644
index 00000000000..3b534d918ea
--- /dev/null
+++ b/packages/flame_tiled/test/assets/oversized_tiles_orthogonal.tmx
@@ -0,0 +1,11 @@
+
+
diff --git a/packages/flame_tiled/test/assets/oversized_tiles_staggered.tmx b/packages/flame_tiled/test/assets/oversized_tiles_staggered.tmx
new file mode 100644
index 00000000000..61f7ba48e31
--- /dev/null
+++ b/packages/flame_tiled/test/assets/oversized_tiles_staggered.tmx
@@ -0,0 +1,11 @@
+
+
diff --git a/packages/flame_tiled/test/goldens/oversized_tiles_hexagonal.png b/packages/flame_tiled/test/goldens/oversized_tiles_hexagonal.png
new file mode 100644
index 00000000000..99159395c23
Binary files /dev/null and b/packages/flame_tiled/test/goldens/oversized_tiles_hexagonal.png differ
diff --git a/packages/flame_tiled/test/goldens/oversized_tiles_isometric.png b/packages/flame_tiled/test/goldens/oversized_tiles_isometric.png
new file mode 100644
index 00000000000..40e1f191696
Binary files /dev/null and b/packages/flame_tiled/test/goldens/oversized_tiles_isometric.png differ
diff --git a/packages/flame_tiled/test/goldens/oversized_tiles_orthogonal.png b/packages/flame_tiled/test/goldens/oversized_tiles_orthogonal.png
new file mode 100644
index 00000000000..ef7c2dccda6
Binary files /dev/null and b/packages/flame_tiled/test/goldens/oversized_tiles_orthogonal.png differ
diff --git a/packages/flame_tiled/test/goldens/oversized_tiles_staggered.png b/packages/flame_tiled/test/goldens/oversized_tiles_staggered.png
new file mode 100644
index 00000000000..b4ebd30f8fc
Binary files /dev/null and b/packages/flame_tiled/test/goldens/oversized_tiles_staggered.png differ
diff --git a/packages/flame_tiled/test/tiled_test.dart b/packages/flame_tiled/test/tiled_test.dart
index 83b5f267d7b..b742ee472b1 100644
--- a/packages/flame_tiled/test/tiled_test.dart
+++ b/packages/flame_tiled/test/tiled_test.dart
@@ -866,4 +866,39 @@ void main() {
});
}
});
+
+ group('oversized tiles', () {
+ late TiledComponent component;
+ final size = Vector2(16, 16);
+
+ for (final mapType in [
+ 'orthogonal',
+ 'isometric',
+ 'hexagonal',
+ 'staggered'
+ ]) {
+ group(mapType, () {
+ setUp(() async {
+ Flame.bundle = TestAssetBundle(
+ imageNames: [
+ '0x72_DungeonTilesetII_v1.4.png',
+ ],
+ stringNames: ['oversized_tiles_$mapType.tmx'],
+ );
+ component = await TiledComponent.load(
+ 'oversized_tiles_$mapType.tmx',
+ size,
+ );
+ });
+
+ test('renders ($mapType)', () async {
+ final pngData = await renderMapToPng(component);
+ await expectLater(
+ pngData,
+ matchesGoldenFile('goldens/oversized_tiles_$mapType.png'),
+ );
+ });
+ });
+ }
+ });
}