diff --git a/packages/pinball_components/sandbox/lib/main.dart b/packages/pinball_components/sandbox/lib/main.dart index 73ae296c..e4e0969e 100644 --- a/packages/pinball_components/sandbox/lib/main.dart +++ b/packages/pinball_components/sandbox/lib/main.dart @@ -33,6 +33,7 @@ void main() { addLaunchRampStories(dashbook); addScoreTextStories(dashbook); addBackboardStories(dashbook); + addDinoWallStories(dashbook); runApp(dashbook); } diff --git a/packages/pinball_components/sandbox/lib/stories/dino_wall/dino_wall_game.dart b/packages/pinball_components/sandbox/lib/stories/dino_wall/dino_wall_game.dart new file mode 100644 index 00000000..872c24df --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/dino_wall/dino_wall_game.dart @@ -0,0 +1,31 @@ +import 'dart:async'; + +import 'package:flame/input.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_flame/pinball_flame.dart'; +import 'package:sandbox/stories/ball/basic_ball_game.dart'; + +class DinoWallGame extends BasicBallGame { + DinoWallGame() : super(); + + static const info = ''' + Shows how DinoWalls are rendered. + + - Activate the "trace" parameter to overlay the body. + - Tap anywhere on the screen to spawn a ball into the game. +'''; + + @override + Future onLoad() async { + await super.onLoad(); + + await images.loadAll([ + Assets.images.dino.dinoLandTop.keyName, + Assets.images.dino.dinoLandBottom.keyName, + ]); + + await addFromBlueprint(DinoWalls()); + camera.followVector2(Vector2.zero()); + await traceAllBodies(); + } +} diff --git a/packages/pinball_components/sandbox/lib/stories/dino_wall/stories.dart b/packages/pinball_components/sandbox/lib/stories/dino_wall/stories.dart new file mode 100644 index 00000000..44e266f4 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/dino_wall/stories.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/dino_wall/dino_wall_game.dart'; + +void addDinoWallStories(Dashbook dashbook) { + dashbook.storiesOf('DinoWall').add( + 'Basic', + (context) => GameWidget( + game: DinoWallGame()..trace = context.boolProperty('Trace', true), + ), + codeLink: buildSourceLink('dino_wall/basic.dart'), + info: DinoWallGame.info, + ); +} diff --git a/packages/pinball_components/sandbox/lib/stories/stories.dart b/packages/pinball_components/sandbox/lib/stories/stories.dart index 338ca384..9b9f5663 100644 --- a/packages/pinball_components/sandbox/lib/stories/stories.dart +++ b/packages/pinball_components/sandbox/lib/stories/stories.dart @@ -4,6 +4,7 @@ export 'ball/stories.dart'; export 'baseboard/stories.dart'; export 'boundaries/stories.dart'; export 'chrome_dino/stories.dart'; +export 'dino_wall/stories.dart'; export 'effects/stories.dart'; export 'flipper/stories.dart'; export 'flutter_forest/stories.dart';