feat: add mobile touch controls

pull/232/head
Jochum van der Ploeg 3 years ago
parent 86f6423652
commit 9a0f72693c
No known key found for this signature in database
GPG Key ID: E961B7B51589CA09

@ -82,7 +82,7 @@ class PinballGame extends Forge2DGame
await super.onLoad(); await super.onLoad();
} }
BoardSide? boardSideActive; BoardSide? focusedBoardSide;
@override @override
void onTapDown(TapDownInfo info) { void onTapDown(TapDownInfo info) {
@ -94,14 +94,11 @@ class PinballGame extends Forge2DGame
children.whereType<Plunger>().first.pull(); children.whereType<Plunger>().first.pull();
} else { } else {
final leftSide = info.eventPosition.widget.x < canvasSize.x / 2; final leftSide = info.eventPosition.widget.x < canvasSize.x / 2;
boardSideActive = leftSide ? BoardSide.left : BoardSide.right; focusedBoardSide = leftSide ? BoardSide.left : BoardSide.right;
final flippers = descendants().whereType<Flipper>().where((flipper) { final flippers = descendants().whereType<Flipper>().where((flipper) {
return flipper.side == boardSideActive; return flipper.side == focusedBoardSide;
}); });
flippers.first.moveUp();
for (final flipper in flippers) {
flipper.moveUp();
}
} }
} }
@ -130,14 +127,12 @@ class PinballGame extends Forge2DGame
} }
void _moveFlippersDown() { void _moveFlippersDown() {
if (boardSideActive != null) { if (focusedBoardSide != null) {
final flippers = descendants().whereType<Flipper>().where((flipper) { final flippers = descendants().whereType<Flipper>().where((flipper) {
return flipper.side == boardSideActive; return flipper.side == focusedBoardSide;
}); });
for (final flipper in flippers) { flippers.first.moveDown();
flipper.moveDown(); focusedBoardSide = null;
}
boardSideActive = null;
} }
} }
} }

Loading…
Cancel
Save