From 82588602ebc04c450bf227561d315571f82d5441 Mon Sep 17 00:00:00 2001 From: Jochum van der Ploeg Date: Tue, 3 May 2022 22:31:04 +0200 Subject: [PATCH] fix: use both flippers on mobile (#318) Co-authored-by: Tom Arra --- lib/game/pinball_game.dart | 18 +++++++++--------- test/game/pinball_game_test.dart | 16 ++++++++-------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index bd29e4e8..0cd130ca 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -18,7 +18,7 @@ class PinballGame extends PinballForge2DGame FlameBloc, HasKeyboardHandlerComponents, Controls<_GameBallsController>, - TapDetector { + MultiTouchTapDetector { PinballGame({ required this.characterTheme, required this.audio, @@ -80,7 +80,7 @@ class PinballGame extends PinballForge2DGame BoardSide? focusedBoardSide; @override - void onTapDown(TapDownInfo info) { + void onTapDown(int pointerId, TapDownInfo info) { if (info.raw.kind == PointerDeviceKind.touch) { final rocket = descendants().whereType().first; final bounds = rocket.topLeftPosition & rocket.size; @@ -98,19 +98,19 @@ class PinballGame extends PinballForge2DGame } } - super.onTapDown(info); + super.onTapDown(pointerId, info); } @override - void onTapUp(TapUpInfo info) { + void onTapUp(int pointerId, TapUpInfo info) { _moveFlippersDown(); - super.onTapUp(info); + super.onTapUp(pointerId, info); } @override - void onTapCancel() { + void onTapCancel(int pointerId) { _moveFlippersDown(); - super.onTapCancel(); + super.onTapCancel(pointerId); } void _moveFlippersDown() { @@ -181,8 +181,8 @@ class DebugPinballGame extends PinballGame with FPSCounter { } @override - void onTapUp(TapUpInfo info) { - super.onTapUp(info); + void onTapUp(int pointerId, TapUpInfo info) { + super.onTapUp(pointerId, info); if (info.raw.kind == PointerDeviceKind.mouse) { final ball = ControlledBall.debug() diff --git a/test/game/pinball_game_test.dart b/test/game/pinball_game_test.dart index 884037f4..b85dba5c 100644 --- a/test/game/pinball_game_test.dart +++ b/test/game/pinball_game_test.dart @@ -323,7 +323,7 @@ void main() { (flipper) => flipper.side == BoardSide.left, ); - game.onTapDown(tapDownEvent); + game.onTapDown(0, tapDownEvent); expect(flippers.first.body.linearVelocity.y, isNegative); }); @@ -346,7 +346,7 @@ void main() { (flipper) => flipper.side == BoardSide.right, ); - game.onTapDown(tapDownEvent); + game.onTapDown(0, tapDownEvent); expect(flippers.first.body.linearVelocity.y, isNegative); }); @@ -369,14 +369,14 @@ void main() { (flipper) => flipper.side == BoardSide.left, ); - game.onTapDown(tapDownEvent); + game.onTapDown(0, tapDownEvent); expect(flippers.first.body.linearVelocity.y, isNegative); final tapUpEvent = _MockTapUpInfo(); when(() => tapUpEvent.eventPosition).thenReturn(eventPosition); - game.onTapUp(tapUpEvent); + game.onTapUp(0, tapUpEvent); await game.ready(); expect(flippers.first.body.linearVelocity.y, isPositive); @@ -400,11 +400,11 @@ void main() { (flipper) => flipper.side == BoardSide.left, ); - game.onTapDown(tapDownEvent); + game.onTapDown(0, tapDownEvent); expect(flippers.first.body.linearVelocity.y, isNegative); - game.onTapCancel(); + game.onTapCancel(0); expect(flippers.first.body.linearVelocity.y, isPositive); }); @@ -426,7 +426,7 @@ void main() { final plunger = game.descendants().whereType().first; - game.onTapDown(tapDownEvent); + game.onTapDown(0, tapDownEvent); game.update(1); @@ -452,7 +452,7 @@ void main() { final previousBalls = game.descendants().whereType().toList(); - game.onTapUp(tapUpEvent); + game.onTapUp(0, tapUpEvent); await game.ready(); expect(