diff --git a/packages/pinball_components/lib/src/components/launch_ramp.dart b/packages/pinball_components/lib/src/components/launch_ramp.dart index dcc22764..e0508ace 100644 --- a/packages/pinball_components/lib/src/components/launch_ramp.dart +++ b/packages/pinball_components/lib/src/components/launch_ramp.dart @@ -11,7 +11,7 @@ import 'package:pinball_components/pinball_components.dart'; /// [_LaunchRampForegroundRailing]. /// {@endtemplate} class LaunchRamp extends Forge2DBlueprint { - /// Base priority for ball while be in [_LaunchRampBase]. + /// Base priority for [Ball] while be in [LaunchRamp]. static const ballPriorityInsideRamp = 0; @override @@ -47,7 +47,6 @@ class _LaunchRampBase extends BodyComponent with InitialPosition, Layered { : super( priority: LaunchRamp.ballPriorityInsideRamp - 1, ) { - renderBody = false; layer = Layer.launcher; } @@ -154,7 +153,6 @@ class _LaunchRampForegroundRailing extends BodyComponent : super( priority: LaunchRamp.ballPriorityInsideRamp + 1, ) { - renderBody = false; layer = Layer.launcher; } diff --git a/packages/pinball_components/lib/src/components/spaceship_rail.dart b/packages/pinball_components/lib/src/components/spaceship_rail.dart index 7244af41..0fb94d2d 100644 --- a/packages/pinball_components/lib/src/components/spaceship_rail.dart +++ b/packages/pinball_components/lib/src/components/spaceship_rail.dart @@ -1,9 +1,11 @@ // ignore_for_file: avoid_renaming_method_parameters import 'dart:math' as math; +import 'dart:ui'; import 'package:flame/components.dart'; import 'package:flame_forge2d/flame_forge2d.dart'; +import 'package:flutter/material.dart'; import 'package:pinball_components/gen/assets.gen.dart'; import 'package:pinball_components/pinball_components.dart' hide Assets; @@ -14,7 +16,7 @@ class SpaceshipRail extends Forge2DBlueprint { /// {@macro spaceship_rail} SpaceshipRail(); - /// Base priority for ball while be in [_SpaceshipRailRamp]. + /// Base priority for [Ball] while be in [SpaceshipRail]. static const ballPriorityInsideRail = 2; @override @@ -47,7 +49,6 @@ class _SpaceshipRailRamp extends BodyComponent with InitialPosition, Layered { : super( priority: SpaceshipRail.ballPriorityInsideRail - 1, ) { - renderBody = false; layer = Layer.spaceshipExitRail; } @@ -139,6 +140,8 @@ class _SpaceshipRailRamp extends BodyComponent with InitialPosition, Layered { @override Future onLoad() async { await super.onLoad(); + renderBody = false; + await add(_SpaceshipRailRampSpriteComponent()); } } @@ -160,13 +163,6 @@ class _SpaceshipRailRampSpriteComponent extends SpriteComponent } class _SpaceshipRailForeground extends SpriteComponent with HasGameRef { - _SpaceshipRailForeground() - : super( - anchor: Anchor.center, - position: Vector2(-28.5, 19.7), - priority: SpaceshipRail.ballPriorityInsideRail + 1, - ); - @override Future onLoad() async { await super.onLoad(); @@ -176,6 +172,9 @@ class _SpaceshipRailForeground extends SpriteComponent with HasGameRef { ); this.sprite = sprite; size = sprite.originalSize / 10; + anchor = Anchor.center; + position = Vector2(-28.5, 19.7); + priority = SpaceshipRail.ballPriorityInsideRail + 1; } } @@ -213,12 +212,14 @@ class SpaceshipRailExit extends RampOpening { /// {@macro spaceship_rail_exit} SpaceshipRailExit() : super( - insideLayer: Layer.spaceshipExitRail, orientation: RampOrientation.down, - insidePriority: 3, + insideLayer: Layer.spaceshipExitRail, + insidePriority: SpaceshipRail.ballPriorityInsideRail, ) { - renderBody = false; layer = Layer.spaceshipExitRail; + paint = Paint() + ..color = Colors.red + ..style = PaintingStyle.fill; } @override diff --git a/packages/pinball_components/lib/src/components/spaceship_ramp.dart b/packages/pinball_components/lib/src/components/spaceship_ramp.dart index 82a7c34f..452d101e 100644 --- a/packages/pinball_components/lib/src/components/spaceship_ramp.dart +++ b/packages/pinball_components/lib/src/components/spaceship_ramp.dart @@ -60,7 +60,6 @@ class _SpaceshipRampBackground extends BodyComponent with InitialPosition, Layered { _SpaceshipRampBackground() : super(priority: SpaceshipRamp.ballPriorityInsideRamp - 1) { - renderBody = false; layer = Layer.spaceshipEntranceRamp; } @@ -152,7 +151,6 @@ class _SpaceshipRampForegroundRailing extends BodyComponent with InitialPosition, Layered { _SpaceshipRampForegroundRailing() : super(priority: SpaceshipRamp.ballPriorityInsideRamp + 1) { - renderBody = false; layer = Layer.spaceshipEntranceRamp; } @@ -199,11 +197,13 @@ class _SpaceshipRampForegroundRailing extends BodyComponent @override Future onLoad() async { await super.onLoad(); - await add(_SpaceshipRampForegroundRalingSpriteComponent()); + renderBody = false; + + await add(_SpaceshipRampForegroundRailingSpriteComponent()); } } -class _SpaceshipRampForegroundRalingSpriteComponent extends SpriteComponent +class _SpaceshipRampForegroundRailingSpriteComponent extends SpriteComponent with HasGameRef { @override Future onLoad() async { @@ -221,6 +221,7 @@ class _SpaceshipRampForegroundRalingSpriteComponent extends SpriteComponent /// Represents the ground right base of the [SpaceshipRamp]. class _SpaceshipRampBase extends BodyComponent with InitialPosition, Layered { _SpaceshipRampBase() { + renderBody = false; layer = Layer.board; }