From 44876da1ee054b310f3628d27214f93160f34b98 Mon Sep 17 00:00:00 2001 From: alestiago Date: Thu, 7 Apr 2022 11:17:35 +0100 Subject: [PATCH] refactor: defined KickerSprite --- .../lib/src/components/kicker.dart | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/packages/pinball_components/lib/src/components/kicker.dart b/packages/pinball_components/lib/src/components/kicker.dart index 442f4200..b7d1cbf8 100644 --- a/packages/pinball_components/lib/src/components/kicker.dart +++ b/packages/pinball_components/lib/src/components/kicker.dart @@ -18,6 +18,9 @@ class Kicker extends BodyComponent with InitialPosition { required BoardSide side, }) : _side = side; + /// The size of the [Kicker] body. + static final Vector2 size = Vector2(4.4, 15); + /// Whether the [Kicker] is on the left or right side of the board. /// /// A [Kicker] with [BoardSide.left] propels the [Ball] to the right, @@ -25,9 +28,6 @@ class Kicker extends BodyComponent with InitialPosition { /// left. final BoardSide _side; - /// The size of the [Kicker] body. - static final Vector2 size = Vector2(4.4, 15); - List _createFixtureDefs() { final fixturesDefs = []; final direction = _side.direction; @@ -122,21 +122,28 @@ class Kicker extends BodyComponent with InitialPosition { Future onLoad() async { await super.onLoad(); renderBody = false; + await add(_KickerSprite(side: _side)); + } +} + +class _KickerSprite extends SpriteComponent with HasGameRef { + _KickerSprite({required BoardSide side}) : _side = side; + + final BoardSide _side; + + @override + Future onLoad() async { + await super.onLoad(); final sprite = await gameRef.loadSprite( (_side.isLeft) ? Assets.images.kicker.left.keyName : Assets.images.kicker.right.keyName, ); - - await add( - SpriteComponent( - sprite: sprite, - size: Vector2(8.7, 19), - anchor: Anchor.center, - position: Vector2(0.7 * -_side.direction, -2.2), - ), - ); + this.sprite = sprite; + size = sprite.originalSize / 10; + anchor = Anchor.center; + position = Vector2(0.7 * -_side.direction, -2.2); } }