From ca3612558c9e7b24c7a41bfbe3362f06ff2c419a Mon Sep 17 00:00:00 2001 From: RuiAlonso Date: Thu, 7 Apr 2022 18:12:49 +0200 Subject: [PATCH] feat: added SpaceshipRail story --- .../spaceship_rail/spaceship_rail_game.dart | 35 +++++++++++++++++++ .../lib/stories/spaceship_rail/stories.dart | 16 +++++++++ 2 files changed, 51 insertions(+) create mode 100644 packages/pinball_components/sandbox/lib/stories/spaceship_rail/spaceship_rail_game.dart create mode 100644 packages/pinball_components/sandbox/lib/stories/spaceship_rail/stories.dart diff --git a/packages/pinball_components/sandbox/lib/stories/spaceship_rail/spaceship_rail_game.dart b/packages/pinball_components/sandbox/lib/stories/spaceship_rail/spaceship_rail_game.dart new file mode 100644 index 00000000..8b84b714 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/spaceship_rail/spaceship_rail_game.dart @@ -0,0 +1,35 @@ +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 SpaceshipRailGame extends BasicBallGame with Traceable { + SpaceshipRailGame() + : super( + color: Colors.blue, + ballPriority: SpaceshipRail.ballPriorityInsideRail, + ballLayer: Layer.spaceshipExitRail, + ); + + static const info = ''' + Shows how SpaceshipRail 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(-30, -10)); + + final spaceshipRail = SpaceshipRail(); + unawaited(addFromBlueprint(spaceshipRail)); + + await traceAllBodies(); + } +} diff --git a/packages/pinball_components/sandbox/lib/stories/spaceship_rail/stories.dart b/packages/pinball_components/sandbox/lib/stories/spaceship_rail/stories.dart new file mode 100644 index 00000000..e69ed1db --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/spaceship_rail/stories.dart @@ -0,0 +1,16 @@ +import 'package:dashbook/dashbook.dart'; +import 'package:flame/game.dart'; +import 'package:sandbox/common/common.dart'; +import 'package:sandbox/stories/spaceship_rail/spaceship_rail_game.dart'; + +void addSpaceshipRailStories(Dashbook dashbook) { + dashbook.storiesOf('SpaceshipRail').add( + 'Basic', + (context) => GameWidget( + game: SpaceshipRailGame() + ..trace = context.boolProperty('Trace', true), + ), + codeLink: buildSourceLink('spaceship_rail/basic.dart'), + info: SpaceshipRailGame.info, + ); +}