refactor: removed keyevents from plunger

pull/152/head
RuiAlonso 4 years ago
parent dbb2900704
commit 35e6ef5064

@ -1,6 +1,5 @@
import 'package:flame/components.dart';
import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:flutter/services.dart';
import 'package:pinball_components/pinball_components.dart';
/// {@template plunger}
@ -9,7 +8,7 @@ import 'package:pinball_components/pinball_components.dart';
///
/// [Plunger] ignores gravity so the player controls its downward [pull].
/// {@endtemplate}
class Plunger extends BodyComponent with KeyboardHandler, InitialPosition {
class Plunger extends BodyComponent with InitialPosition {
/// {@macro plunger}
Plunger({
required this.compressionDistance,
@ -57,27 +56,6 @@ class Plunger extends BodyComponent with KeyboardHandler, InitialPosition {
body.linearVelocity = Vector2(0, velocity);
}
@override
bool onKeyEvent(
RawKeyEvent event,
Set<LogicalKeyboardKey> keysPressed,
) {
final keys = [
LogicalKeyboardKey.space,
LogicalKeyboardKey.arrowDown,
LogicalKeyboardKey.keyS,
];
if (!keys.contains(event.logicalKey)) return true;
if (event is RawKeyDownEvent) {
pull();
} else if (event is RawKeyUpEvent) {
release();
}
return false;
}
/// Anchors the [Plunger] to the [PrismaticJoint] that controls its vertical
/// motion.
Future<void> _anchorToJoint() async {

@ -40,14 +40,15 @@ class PlungerGame extends BasicBallGame with KeyboardEvents, Traceable {
RawKeyEvent event,
Set<LogicalKeyboardKey> keysPressed,
) {
final movedDownPlunger = _downKeys.contains(event.logicalKey);
if (movedDownPlunger) {
final movedPlungerDown = _downKeys.contains(event.logicalKey);
if (movedPlungerDown) {
if (event is RawKeyDownEvent) {
plunger.pull();
} else if (event is RawKeyUpEvent) {
plunger.release();
}
return KeyEventResult.handled;
}
return movedDownPlunger ? KeyEventResult.handled : KeyEventResult.ignored;
return KeyEventResult.ignored;
}
}

Loading…
Cancel
Save