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.
''';
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,21 +47,23 @@ class BasicFlipperGame extends BasicBallGame with KeyboardEvents {
RawKeyEvent event,
Set<LogicalKeyboardKey> keysPressed,
) {
final movedLeftFlipper =
_leftFlipperKeys.intersection(keysPressed).isNotEmpty;
if (event is RawKeyDownEvent && movedLeftFlipper) {
final movedLeftFlipper = _leftFlipperKeys.contains(event.logicalKey);
if (movedLeftFlipper) {
if (event is RawKeyDownEvent) {
leftFlipper.moveUp();
} else if (event is RawKeyUpEvent && movedLeftFlipper) {
} else if (event is RawKeyUpEvent) {
leftFlipper.moveDown();
}
}
final movedRightFlipper =
_rightFlipperKeys.intersection(keysPressed).isNotEmpty;
if (event is RawKeyDownEvent && movedRightFlipper) {
final movedRightFlipper = _rightFlipperKeys.contains(event.logicalKey);
if (movedRightFlipper) {
if (event is RawKeyDownEvent) {
rightFlipper.moveUp();
} else if (event is RawKeyUpEvent && movedRightFlipper) {
} else if (event is RawKeyUpEvent) {
rightFlipper.moveDown();
}
}
return movedLeftFlipper || movedRightFlipper
? KeyEventResult.handled

Loading…
Cancel
Save