diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index 2502d6b0..243e3826 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -27,18 +27,13 @@ class PinballGame extends Forge2DGame with FlameBloc, KeyboardEvents { // TODO(alestiago): Change to the design position. late final flippersPosition = ballStartingPosition - Vector2(0, 5); - @override - Future onLoad() async { - addContactCallback(BallScorePointsCallback()); - - await add(BottomWall(this)); - addContactCallback(BottomWallBallContactCallback()); - - const flipperSpace = 2; + Future _addFlippers() async { + const spaceBetweenFlippers = 2; await add( _leftFlipper = Flipper( position: Vector2( - (flippersPosition.x - (Flipper.width / 2)) - (flipperSpace / 2), + (flippersPosition.x - (Flipper.width / 2)) - + (spaceBetweenFlippers / 2), flippersPosition.y, ), side: BoardSide.left, @@ -58,7 +53,8 @@ class PinballGame extends Forge2DGame with FlameBloc, KeyboardEvents { await add( _rightFlipper = Flipper( position: Vector2( - (flippersPosition.x + (Flipper.width / 2)) + (flipperSpace / 2), + (flippersPosition.x + (Flipper.width / 2)) + + (spaceBetweenFlippers / 2), flippersPosition.y, ), side: BoardSide.right, @@ -70,10 +66,22 @@ class PinballGame extends Forge2DGame with FlameBloc, KeyboardEvents { flipper: _rightFlipper, anchor: rightFlipperAnchor, ); + // TODO(alestiago): Remove casting once the following is closed: + // https://github.com/flame-engine/forge2d/issues/36 _rightFlipperRevoluteJoint = world.createJoint(rightFlipperRevoluteJointDef) as RevoluteJoint; } + @override + Future onLoad() async { + addContactCallback(BallScorePointsCallback()); + + await add(BottomWall(this)); + addContactCallback(BottomWallBallContactCallback()); + + await _addFlippers(); + } + @override Future onMount() async { super.onMount();