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.
late final flippersPosition = ballStartingPosition - Vector2(0, 5);
@override
Future<void> onLoad() async {
addContactCallback(BallScorePointsCallback());
await add(BottomWall(this));
addContactCallback(BottomWallBallContactCallback());
const flipperSpace = 2;
Future<void> _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<void> onLoad() async {
addContactCallback(BallScorePointsCallback());
await add(BottomWall(this));
addContactCallback(BottomWallBallContactCallback());
await _addFlippers();
}
@override
Future<void> onMount() async {
super.onMount();

Loading…
Cancel
Save