|
|
|
@ -29,17 +29,24 @@ class PinballGame extends Forge2DGame
|
|
|
|
|
unawaited(_addPlunger());
|
|
|
|
|
|
|
|
|
|
unawaited(_addFlippers());
|
|
|
|
|
|
|
|
|
|
unawaited(_addBonusWord());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> _addFlippers() async {
|
|
|
|
|
const spaceBetweenFlippers = 2;
|
|
|
|
|
final leftFlipper = Flipper.left(
|
|
|
|
|
position: Vector2(
|
|
|
|
|
flippersPosition.x - (Flipper.width / 2) - (spaceBetweenFlippers / 2),
|
|
|
|
|
flippersPosition.y,
|
|
|
|
|
Future<void> _addBonusWord() async {
|
|
|
|
|
await add(
|
|
|
|
|
BonusWord(
|
|
|
|
|
position: screenToWorld(
|
|
|
|
|
Vector2(
|
|
|
|
|
camera.viewport.effectiveSize.x / 2,
|
|
|
|
|
camera.viewport.effectiveSize.y - 50,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> _addFlippers() async {
|
|
|
|
|
final flippersPosition = screenToWorld(
|
|
|
|
|
Vector2(
|
|
|
|
|
camera.viewport.effectiveSize.x / 2,
|
|
|
|
@ -64,6 +71,7 @@ class PinballGame extends Forge2DGame
|
|
|
|
|
void _addContactCallbacks() {
|
|
|
|
|
addContactCallback(BallScorePointsCallback());
|
|
|
|
|
addContactCallback(BottomWallBallContactCallback());
|
|
|
|
|
addContactCallback(BonusLetterBallContactCallback());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> _addGameBoundaries() async {
|
|
|
|
|