From 166b825a9d9a615092b4a4a64d463f512a2264be Mon Sep 17 00:00:00 2001 From: alestiago Date: Mon, 28 Mar 2022 14:51:45 +0100 Subject: [PATCH] feat(sanbox): including Flipper example --- .../pinball_components/sandbox/lib/main.dart | 1 + .../sandbox/lib/stories/flipper/basic.dart | 26 +++++++++++++++++++ .../sandbox/lib/stories/flipper/flipper.dart | 15 +++++++++++ .../sandbox/lib/stories/stories.dart | 1 + 4 files changed, 43 insertions(+) create mode 100644 packages/pinball_components/sandbox/lib/stories/flipper/basic.dart create mode 100644 packages/pinball_components/sandbox/lib/stories/flipper/flipper.dart diff --git a/packages/pinball_components/sandbox/lib/main.dart b/packages/pinball_components/sandbox/lib/main.dart index 44b594d7..113d61ac 100644 --- a/packages/pinball_components/sandbox/lib/main.dart +++ b/packages/pinball_components/sandbox/lib/main.dart @@ -15,5 +15,6 @@ void main() { addBallStories(dashbook); addLayerStories(dashbook); addEffectsStories(dashbook); + addFlipperStories(dashbook); runApp(dashbook); } diff --git a/packages/pinball_components/sandbox/lib/stories/flipper/basic.dart b/packages/pinball_components/sandbox/lib/stories/flipper/basic.dart new file mode 100644 index 00000000..0e5587ea --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/flipper/basic.dart @@ -0,0 +1,26 @@ +import 'package:flame_forge2d/flame_forge2d.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:sandbox/common/common.dart'; + +class BasicFlipperGame extends BasicGame { + static const info = ''' + Basic example of how a Flipper works. +'''; + + @override + Future onLoad() async { + await super.onLoad(); + + final center = screenToWorld(camera.viewport.canvasSize! / 2); + + final leftFlipper = Flipper(side: BoardSide.left) + ..initialPosition = center - Vector2(Flipper.size.x, 0); + final rightFlipper = Flipper(side: BoardSide.right) + ..initialPosition = center + Vector2(Flipper.size.x, 0); + + await addAll([ + leftFlipper, + rightFlipper, + ]); + } +} diff --git a/packages/pinball_components/sandbox/lib/stories/flipper/flipper.dart b/packages/pinball_components/sandbox/lib/stories/flipper/flipper.dart new file mode 100644 index 00000000..0fae8423 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/flipper/flipper.dart @@ -0,0 +1,15 @@ +import 'package:dashbook/dashbook.dart'; +import 'package:flame/game.dart'; +import 'package:sandbox/common/common.dart'; +import 'package:sandbox/stories/flipper/basic.dart'; + +void addFlipperStories(Dashbook dashbook) { + dashbook.storiesOf('Flipper').add( + 'Basic', + (context) => GameWidget( + game: BasicFlipperGame(), + ), + codeLink: buildSourceLink('ball/basic.dart'), + info: BasicFlipperGame.info, + ); +} diff --git a/packages/pinball_components/sandbox/lib/stories/stories.dart b/packages/pinball_components/sandbox/lib/stories/stories.dart index 1135fbaf..9f861bde 100644 --- a/packages/pinball_components/sandbox/lib/stories/stories.dart +++ b/packages/pinball_components/sandbox/lib/stories/stories.dart @@ -1,2 +1,3 @@ export 'ball/ball.dart'; +export 'flipper/flipper.dart'; export 'layer/layer.dart';