refactor: implemented _addFlippers method

pull/15/head
alestiago 4 years ago
parent 03a25393e8
commit 320bacc85a

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

Loading…
Cancel
Save