feat: improved moving logic

pull/123/head
alestiago 4 years ago
parent dd7e493e91
commit bef9a90ae9

@ -12,14 +12,15 @@ class BasicFlipperGame extends BasicBallGame with KeyboardEvents {
Basic example of how a Flipper works. Basic example of how a Flipper works.
'''; ''';
static final _leftFlipperKeys = { static const _leftFlipperKeys = [
LogicalKeyboardKey.arrowLeft, LogicalKeyboardKey.arrowLeft,
LogicalKeyboardKey.keyA, LogicalKeyboardKey.keyA,
}; ];
static final _rightFlipperKeys = { static const _rightFlipperKeys = [
LogicalKeyboardKey.arrowRight, LogicalKeyboardKey.arrowRight,
}; LogicalKeyboardKey.keyD,
];
late Flipper leftFlipper; late Flipper leftFlipper;
late Flipper rightFlipper; late Flipper rightFlipper;
@ -46,20 +47,22 @@ class BasicFlipperGame extends BasicBallGame with KeyboardEvents {
RawKeyEvent event, RawKeyEvent event,
Set<LogicalKeyboardKey> keysPressed, Set<LogicalKeyboardKey> keysPressed,
) { ) {
final movedLeftFlipper = final movedLeftFlipper = _leftFlipperKeys.contains(event.logicalKey);
_leftFlipperKeys.intersection(keysPressed).isNotEmpty; if (movedLeftFlipper) {
if (event is RawKeyDownEvent && movedLeftFlipper) { if (event is RawKeyDownEvent) {
leftFlipper.moveUp(); leftFlipper.moveUp();
} else if (event is RawKeyUpEvent && movedLeftFlipper) { } else if (event is RawKeyUpEvent) {
leftFlipper.moveDown(); leftFlipper.moveDown();
}
} }
final movedRightFlipper = final movedRightFlipper = _rightFlipperKeys.contains(event.logicalKey);
_rightFlipperKeys.intersection(keysPressed).isNotEmpty; if (movedRightFlipper) {
if (event is RawKeyDownEvent && movedRightFlipper) { if (event is RawKeyDownEvent) {
rightFlipper.moveUp(); rightFlipper.moveUp();
} else if (event is RawKeyUpEvent && movedRightFlipper) { } else if (event is RawKeyUpEvent) {
rightFlipper.moveDown(); rightFlipper.moveDown();
}
} }
return movedLeftFlipper || movedRightFlipper return movedLeftFlipper || movedRightFlipper

Loading…
Cancel
Save