refactor: defined KickerSprite

pull/158/head
alestiago 4 years ago
parent 585a753c1a
commit 44876da1ee

@ -18,6 +18,9 @@ class Kicker extends BodyComponent with InitialPosition {
required BoardSide side, required BoardSide side,
}) : _side = 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. /// Whether the [Kicker] is on the left or right side of the board.
/// ///
/// A [Kicker] with [BoardSide.left] propels the [Ball] to the right, /// A [Kicker] with [BoardSide.left] propels the [Ball] to the right,
@ -25,9 +28,6 @@ class Kicker extends BodyComponent with InitialPosition {
/// left. /// left.
final BoardSide _side; final BoardSide _side;
/// The size of the [Kicker] body.
static final Vector2 size = Vector2(4.4, 15);
List<FixtureDef> _createFixtureDefs() { List<FixtureDef> _createFixtureDefs() {
final fixturesDefs = <FixtureDef>[]; final fixturesDefs = <FixtureDef>[];
final direction = _side.direction; final direction = _side.direction;
@ -122,21 +122,28 @@ class Kicker extends BodyComponent with InitialPosition {
Future<void> onLoad() async { Future<void> onLoad() async {
await super.onLoad(); await super.onLoad();
renderBody = false; renderBody = false;
await add(_KickerSprite(side: _side));
}
}
class _KickerSprite extends SpriteComponent with HasGameRef {
_KickerSprite({required BoardSide side}) : _side = side;
final BoardSide _side;
@override
Future<void> onLoad() async {
await super.onLoad();
final sprite = await gameRef.loadSprite( final sprite = await gameRef.loadSprite(
(_side.isLeft) (_side.isLeft)
? Assets.images.kicker.left.keyName ? Assets.images.kicker.left.keyName
: Assets.images.kicker.right.keyName, : Assets.images.kicker.right.keyName,
); );
this.sprite = sprite;
await add( size = sprite.originalSize / 10;
SpriteComponent( anchor = Anchor.center;
sprite: sprite, position = Vector2(0.7 * -_side.direction, -2.2);
size: Vector2(8.7, 19),
anchor: Anchor.center,
position: Vector2(0.7 * -_side.direction, -2.2),
),
);
} }
} }

Loading…
Cancel
Save