diff --git a/packages/flame_texturepacker/lib/src/texture_packer_sprite.dart b/packages/flame_texturepacker/lib/src/texture_packer_sprite.dart index aadfe3b0917..30d08099af0 100644 --- a/packages/flame_texturepacker/lib/src/texture_packer_sprite.dart +++ b/packages/flame_texturepacker/lib/src/texture_packer_sprite.dart @@ -31,9 +31,9 @@ class TexturePackerSprite extends Sprite { useOriginalSize ? region.originalHeight : region.height, ), ) { - _decorator = Transform2DDecorator(_transform); if (region.rotate) { - _transform.angle = math.pi / 2; + final transform = Transform2D()..angle = math.pi / 2; + _decorator = Transform2DDecorator(transform); } } @@ -132,8 +132,7 @@ class TexturePackerSprite extends Sprite { src = (position ?? Vector2.zero()).toPositionedRect(_srcSize); } - late final Decorator _decorator; - final Transform2D _transform = Transform2D(); + Decorator? _decorator; // Used to avoid the creation of new Vector2 objects in render. static final _tmpRenderPosition = Vector2.zero(); @@ -206,7 +205,7 @@ class TexturePackerSprite extends Sprite { -_tmpRenderOffset.x - _tmpRenderImageSize.x, ); - _decorator.applyChain( + _decorator?.applyChain( (applyCanvas) => super.render( applyCanvas, position: _tmpRenderPosition,