From 5bee98a2d53696831ad902c46ea3b74bced22d9a Mon Sep 17 00:00:00 2001 From: RuiAlonso Date: Thu, 7 Apr 2022 18:12:22 +0200 Subject: [PATCH] feat: added LaunchRamp story --- .../stories/launch_ramp/launch_ramp_game.dart | 37 +++++++++++++++++++ .../lib/stories/launch_ramp/stories.dart | 15 ++++++++ 2 files changed, 52 insertions(+) create mode 100644 packages/pinball_components/sandbox/lib/stories/launch_ramp/launch_ramp_game.dart create mode 100644 packages/pinball_components/sandbox/lib/stories/launch_ramp/stories.dart diff --git a/packages/pinball_components/sandbox/lib/stories/launch_ramp/launch_ramp_game.dart b/packages/pinball_components/sandbox/lib/stories/launch_ramp/launch_ramp_game.dart new file mode 100644 index 00000000..239678f8 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/launch_ramp/launch_ramp_game.dart @@ -0,0 +1,37 @@ +import 'dart:async'; + +import 'package:flame/input.dart'; +import 'package:flutter/material.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:sandbox/common/common.dart'; +import 'package:sandbox/stories/ball/basic_ball_game.dart'; + +class LaunchRampGame extends BasicBallGame with Traceable { + LaunchRampGame() + : super( + color: Colors.blue, + ballPriority: LaunchRamp.ballPriorityInsideRamp, + ballLayer: Layer.launcher, + ); + + static const info = ''' + Shows how LaunchRamp 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(); + + camera + ..followVector2(Vector2(0, 0)) + ..zoom = 7.5; + + final launchRamp = LaunchRamp(); + unawaited(addFromBlueprint(launchRamp)); + + await traceAllBodies(); + } +} diff --git a/packages/pinball_components/sandbox/lib/stories/launch_ramp/stories.dart b/packages/pinball_components/sandbox/lib/stories/launch_ramp/stories.dart new file mode 100644 index 00000000..083a4584 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/launch_ramp/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/launch_ramp/launch_ramp_game.dart'; + +void addLaunchRampStories(Dashbook dashbook) { + dashbook.storiesOf('LaunchRamp').add( + 'Basic', + (context) => GameWidget( + game: LaunchRampGame()..trace = context.boolProperty('Trace', true), + ), + codeLink: buildSourceLink('launch_ramp/basic.dart'), + info: LaunchRampGame.info, + ); +}