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/components.dart';
import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:flutter/services.dart';
import 'package:pinball_components/pinball_components.dart'; import 'package:pinball_components/pinball_components.dart';
/// {@template plunger} /// {@template plunger}
@ -9,7 +8,7 @@ import 'package:pinball_components/pinball_components.dart';
/// ///
/// [Plunger] ignores gravity so the player controls its downward [pull]. /// [Plunger] ignores gravity so the player controls its downward [pull].
/// {@endtemplate} /// {@endtemplate}
class Plunger extends BodyComponent with KeyboardHandler, InitialPosition { class Plunger extends BodyComponent with InitialPosition {
/// {@macro plunger} /// {@macro plunger}
Plunger({ Plunger({
required this.compressionDistance, required this.compressionDistance,
@ -57,27 +56,6 @@ class Plunger extends BodyComponent with KeyboardHandler, InitialPosition {
body.linearVelocity = Vector2(0, velocity); 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 /// Anchors the [Plunger] to the [PrismaticJoint] that controls its vertical
/// motion. /// motion.
Future<void> _anchorToJoint() async { Future<void> _anchorToJoint() async {

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

Loading…
Cancel
Save