From bef9a90ae9313585718061ff68a3351101d7a385 Mon Sep 17 00:00:00 2001 From: alestiago Date: Fri, 1 Apr 2022 11:51:44 +0100 Subject: [PATCH] feat: improved moving logic --- .../sandbox/lib/stories/flipper/basic.dart | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/packages/pinball_components/sandbox/lib/stories/flipper/basic.dart b/packages/pinball_components/sandbox/lib/stories/flipper/basic.dart index aa0bdd70..d31515de 100644 --- a/packages/pinball_components/sandbox/lib/stories/flipper/basic.dart +++ b/packages/pinball_components/sandbox/lib/stories/flipper/basic.dart @@ -12,14 +12,15 @@ class BasicFlipperGame extends BasicBallGame with KeyboardEvents { Basic example of how a Flipper works. '''; - static final _leftFlipperKeys = { + static const _leftFlipperKeys = [ LogicalKeyboardKey.arrowLeft, LogicalKeyboardKey.keyA, - }; + ]; - static final _rightFlipperKeys = { + static const _rightFlipperKeys = [ LogicalKeyboardKey.arrowRight, - }; + LogicalKeyboardKey.keyD, + ]; late Flipper leftFlipper; late Flipper rightFlipper; @@ -46,20 +47,22 @@ class BasicFlipperGame extends BasicBallGame with KeyboardEvents { RawKeyEvent event, Set keysPressed, ) { - final movedLeftFlipper = - _leftFlipperKeys.intersection(keysPressed).isNotEmpty; - if (event is RawKeyDownEvent && movedLeftFlipper) { - leftFlipper.moveUp(); - } else if (event is RawKeyUpEvent && movedLeftFlipper) { - leftFlipper.moveDown(); + final movedLeftFlipper = _leftFlipperKeys.contains(event.logicalKey); + if (movedLeftFlipper) { + if (event is RawKeyDownEvent) { + leftFlipper.moveUp(); + } else if (event is RawKeyUpEvent) { + leftFlipper.moveDown(); + } } - final movedRightFlipper = - _rightFlipperKeys.intersection(keysPressed).isNotEmpty; - if (event is RawKeyDownEvent && movedRightFlipper) { - rightFlipper.moveUp(); - } else if (event is RawKeyUpEvent && movedRightFlipper) { - rightFlipper.moveDown(); + final movedRightFlipper = _rightFlipperKeys.contains(event.logicalKey); + if (movedRightFlipper) { + if (event is RawKeyDownEvent) { + rightFlipper.moveUp(); + } else if (event is RawKeyUpEvent) { + rightFlipper.moveDown(); + } } return movedLeftFlipper || movedRightFlipper