From 4e0f0ffe2934f6ba1c0163ff4327dd225f7cd86b Mon Sep 17 00:00:00 2001 From: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com> Date: Mon, 4 Apr 2022 12:43:17 -0500 Subject: [PATCH] refactor: smooth out drop tube exit (#135) * refactor: shrink sensor and add foreground * fix: uncomment line * style: trailing comma * refactor: organize spaceship assets * refactor: asset name change and size fix --- lib/game/game_assets.dart | 15 ++-- .../bridge.png} | Bin .../images/spaceship/rail/foreground.png | Bin 0 -> 12430 bytes .../rail/main.png} | Bin .../ramp/main.png} | Bin .../ramp/railing-background.png} | Bin .../ramp/railing-foreground.png} | Bin .../saucer.png} | Bin .../lib/gen/assets.gen.dart | 67 +++++++++++------- .../lib/src/components/spaceship.dart | 4 +- .../lib/src/components/spaceship_rail.dart | 36 ++++++++-- .../lib/src/components/spaceship_ramp.dart | 6 +- packages/pinball_components/pubspec.yaml | 4 +- 13 files changed, 85 insertions(+), 47 deletions(-) rename packages/pinball_components/assets/images/{spaceship_bridge.png => spaceship/bridge.png} (100%) create mode 100644 packages/pinball_components/assets/images/spaceship/rail/foreground.png rename packages/pinball_components/assets/images/{spaceship_ramp/spaceship_drop_tube.png => spaceship/rail/main.png} (100%) rename packages/pinball_components/assets/images/{spaceship_ramp/spaceship_ramp.png => spaceship/ramp/main.png} (100%) rename packages/pinball_components/assets/images/{spaceship_ramp/spaceship_railing_bg.png => spaceship/ramp/railing-background.png} (100%) rename packages/pinball_components/assets/images/{spaceship_ramp/spaceship_railing_fg.png => spaceship/ramp/railing-foreground.png} (100%) rename packages/pinball_components/assets/images/{spaceship_saucer.png => spaceship/saucer.png} (100%) diff --git a/lib/game/game_assets.dart b/lib/game/game_assets.dart index 5c977d65..6bafe37e 100644 --- a/lib/game/game_assets.dart +++ b/lib/game/game_assets.dart @@ -13,8 +13,6 @@ extension PinballGameAssetsX on PinballGame { images.load(components.Assets.images.flipper.right.keyName), images.load(components.Assets.images.baseboard.left.keyName), images.load(components.Assets.images.baseboard.right.keyName), - images.load(components.Assets.images.spaceshipSaucer.keyName), - images.load(components.Assets.images.spaceshipBridge.keyName), images.load(components.Assets.images.launchRamp.ramp.keyName), images.load( components.Assets.images.launchRamp.foregroundRailing.keyName, @@ -29,16 +27,17 @@ extension PinballGameAssetsX on PinballGame { images.load(components.Assets.images.dashBumper.main.inactive.keyName), images.load(components.Assets.images.boundary.bottom.keyName), images.load(components.Assets.images.boundary.outer.keyName), - images.load(components.Assets.images.spaceshipRamp.spaceshipRamp.keyName), + images.load(components.Assets.images.spaceship.saucer.keyName), + images.load(components.Assets.images.spaceship.bridge.keyName), + images.load(components.Assets.images.spaceship.ramp.main.keyName), images.load( - components.Assets.images.spaceshipRamp.spaceshipRailingBg.keyName, + components.Assets.images.spaceship.ramp.railingBackground.keyName, ), images.load( - components.Assets.images.spaceshipRamp.spaceshipRailingFg.keyName, - ), - images.load( - components.Assets.images.spaceshipRamp.spaceshipDropTube.keyName, + components.Assets.images.spaceship.ramp.railingForeground.keyName, ), + images.load(components.Assets.images.spaceship.rail.main.keyName), + images.load(components.Assets.images.spaceship.rail.foreground.keyName), images.load(components.Assets.images.chromeDino.mouth.keyName), images.load(components.Assets.images.chromeDino.head.keyName), images.load(Assets.images.components.background.path), diff --git a/packages/pinball_components/assets/images/spaceship_bridge.png b/packages/pinball_components/assets/images/spaceship/bridge.png similarity index 100% rename from packages/pinball_components/assets/images/spaceship_bridge.png rename to packages/pinball_components/assets/images/spaceship/bridge.png diff --git a/packages/pinball_components/assets/images/spaceship/rail/foreground.png b/packages/pinball_components/assets/images/spaceship/rail/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4d11e865b91834a407e8b63fe87969254d1ca9a6 GIT binary patch literal 12430 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 literal 0 HcmV?d00001 diff --git a/packages/pinball_components/assets/images/spaceship_ramp/spaceship_drop_tube.png b/packages/pinball_components/assets/images/spaceship/rail/main.png similarity index 100% rename from packages/pinball_components/assets/images/spaceship_ramp/spaceship_drop_tube.png rename to packages/pinball_components/assets/images/spaceship/rail/main.png diff --git a/packages/pinball_components/assets/images/spaceship_ramp/spaceship_ramp.png b/packages/pinball_components/assets/images/spaceship/ramp/main.png similarity index 100% rename from packages/pinball_components/assets/images/spaceship_ramp/spaceship_ramp.png rename to packages/pinball_components/assets/images/spaceship/ramp/main.png diff --git a/packages/pinball_components/assets/images/spaceship_ramp/spaceship_railing_bg.png b/packages/pinball_components/assets/images/spaceship/ramp/railing-background.png similarity index 100% rename from packages/pinball_components/assets/images/spaceship_ramp/spaceship_railing_bg.png rename to packages/pinball_components/assets/images/spaceship/ramp/railing-background.png diff --git a/packages/pinball_components/assets/images/spaceship_ramp/spaceship_railing_fg.png b/packages/pinball_components/assets/images/spaceship/ramp/railing-foreground.png similarity index 100% rename from packages/pinball_components/assets/images/spaceship_ramp/spaceship_railing_fg.png rename to packages/pinball_components/assets/images/spaceship/ramp/railing-foreground.png diff --git a/packages/pinball_components/assets/images/spaceship_saucer.png b/packages/pinball_components/assets/images/spaceship/saucer.png similarity index 100% rename from packages/pinball_components/assets/images/spaceship_saucer.png rename to packages/pinball_components/assets/images/spaceship/saucer.png diff --git a/packages/pinball_components/lib/gen/assets.gen.dart b/packages/pinball_components/lib/gen/assets.gen.dart index 99dd9668..c928df79 100644 --- a/packages/pinball_components/lib/gen/assets.gen.dart +++ b/packages/pinball_components/lib/gen/assets.gen.dart @@ -28,17 +28,7 @@ class $AssetsImagesGen { $AssetsImagesLaunchRampGen get launchRamp => const $AssetsImagesLaunchRampGen(); - - /// File path: assets/images/spaceship_bridge.png - AssetGenImage get spaceshipBridge => - const AssetGenImage('assets/images/spaceship_bridge.png'); - - $AssetsImagesSpaceshipRampGen get spaceshipRamp => - const $AssetsImagesSpaceshipRampGen(); - - /// File path: assets/images/spaceship_saucer.png - AssetGenImage get spaceshipSaucer => - const AssetGenImage('assets/images/spaceship_saucer.png'); + $AssetsImagesSpaceshipGen get spaceship => const $AssetsImagesSpaceshipGen(); } class $AssetsImagesBaseboardGen { @@ -122,24 +112,21 @@ class $AssetsImagesLaunchRampGen { const AssetGenImage('assets/images/launch_ramp/ramp.png'); } -class $AssetsImagesSpaceshipRampGen { - const $AssetsImagesSpaceshipRampGen(); - - /// File path: assets/images/spaceship_ramp/spaceship_drop_tube.png - AssetGenImage get spaceshipDropTube => const AssetGenImage( - 'assets/images/spaceship_ramp/spaceship_drop_tube.png'); +class $AssetsImagesSpaceshipGen { + const $AssetsImagesSpaceshipGen(); - /// File path: assets/images/spaceship_ramp/spaceship_railing_bg.png - AssetGenImage get spaceshipRailingBg => const AssetGenImage( - 'assets/images/spaceship_ramp/spaceship_railing_bg.png'); + /// File path: assets/images/spaceship/bridge.png + AssetGenImage get bridge => + const AssetGenImage('assets/images/spaceship/bridge.png'); - /// File path: assets/images/spaceship_ramp/spaceship_railing_fg.png - AssetGenImage get spaceshipRailingFg => const AssetGenImage( - 'assets/images/spaceship_ramp/spaceship_railing_fg.png'); + $AssetsImagesSpaceshipRailGen get rail => + const $AssetsImagesSpaceshipRailGen(); + $AssetsImagesSpaceshipRampGen get ramp => + const $AssetsImagesSpaceshipRampGen(); - /// File path: assets/images/spaceship_ramp/spaceship_ramp.png - AssetGenImage get spaceshipRamp => - const AssetGenImage('assets/images/spaceship_ramp/spaceship_ramp.png'); + /// File path: assets/images/spaceship/saucer.png + AssetGenImage get saucer => + const AssetGenImage('assets/images/spaceship/saucer.png'); } class $AssetsImagesDashBumperAGen { @@ -178,6 +165,34 @@ class $AssetsImagesDashBumperMainGen { const AssetGenImage('assets/images/dash_bumper/main/inactive.png'); } +class $AssetsImagesSpaceshipRailGen { + const $AssetsImagesSpaceshipRailGen(); + + /// File path: assets/images/spaceship/rail/foreground.png + AssetGenImage get foreground => + const AssetGenImage('assets/images/spaceship/rail/foreground.png'); + + /// File path: assets/images/spaceship/rail/main.png + AssetGenImage get main => + const AssetGenImage('assets/images/spaceship/rail/main.png'); +} + +class $AssetsImagesSpaceshipRampGen { + const $AssetsImagesSpaceshipRampGen(); + + /// File path: assets/images/spaceship/ramp/main.png + AssetGenImage get main => + const AssetGenImage('assets/images/spaceship/ramp/main.png'); + + /// File path: assets/images/spaceship/ramp/railing-background.png + AssetGenImage get railingBackground => const AssetGenImage( + 'assets/images/spaceship/ramp/railing-background.png'); + + /// File path: assets/images/spaceship/ramp/railing-foreground.png + AssetGenImage get railingForeground => const AssetGenImage( + 'assets/images/spaceship/ramp/railing-foreground.png'); +} + class Assets { Assets._(); diff --git a/packages/pinball_components/lib/src/components/spaceship.dart b/packages/pinball_components/lib/src/components/spaceship.dart index d9f50653..f1b58db0 100644 --- a/packages/pinball_components/lib/src/components/spaceship.dart +++ b/packages/pinball_components/lib/src/components/spaceship.dart @@ -59,7 +59,7 @@ class SpaceshipSaucer extends BodyComponent with InitialPosition, Layered { Future onLoad() async { await super.onLoad(); final sprite = await gameRef.loadSprite( - Assets.images.spaceshipSaucer.keyName, + Assets.images.spaceship.saucer.keyName, ); await add( @@ -106,7 +106,7 @@ class AndroidHead extends BodyComponent with InitialPosition, Layered { renderBody = false; final sprite = await gameRef.images.load( - Assets.images.spaceshipBridge.keyName, + Assets.images.spaceship.bridge.keyName, ); await add( diff --git a/packages/pinball_components/lib/src/components/spaceship_rail.dart b/packages/pinball_components/lib/src/components/spaceship_rail.dart index c881e8b3..ace12e61 100644 --- a/packages/pinball_components/lib/src/components/spaceship_rail.dart +++ b/packages/pinball_components/lib/src/components/spaceship_rail.dart @@ -23,18 +23,20 @@ class SpaceshipRail extends Forge2DBlueprint { SpaceshipRailExitBallContactCallback(), ]); - final exitRailRamp = _SpaceshipRailRamp(); - final exitRailEnd = SpaceshipRailExit(); + final railRamp = _SpaceshipRailRamp(); + final railEnd = SpaceshipRailExit(); final topBase = _SpaceshipRailBase(radius: 0.55) ..initialPosition = Vector2(-26.15, 18.65); final bottomBase = _SpaceshipRailBase(radius: 0.8) ..initialPosition = Vector2(-25.5, -12.9); + final railForeground = _SpaceshipRailForeground(); addAll([ - exitRailRamp, - exitRailEnd, + railRamp, + railEnd, topBase, bottomBase, + railForeground, ]); } } @@ -142,7 +144,7 @@ class _SpaceshipRailRamp extends BodyComponent with InitialPosition, Layered { Future _loadSprite() async { final sprite = await gameRef.loadSprite( - Assets.images.spaceshipRamp.spaceshipDropTube.keyName, + Assets.images.spaceship.rail.main.keyName, ); final spriteComponent = SpriteComponent( sprite: sprite, @@ -155,6 +157,26 @@ class _SpaceshipRailRamp extends BodyComponent with InitialPosition, Layered { } } +class _SpaceshipRailForeground extends SpriteComponent with HasGameRef { + _SpaceshipRailForeground() + : super( + anchor: Anchor.center, + position: Vector2(-28.5, 19.7), + priority: SpaceshipRail.ballPriorityWhenOnSpaceshipRail + 1, + ); + + @override + Future onLoad() async { + await super.onLoad(); + + final sprite = await gameRef.loadSprite( + Assets.images.spaceship.rail.foreground.keyName, + ); + this.sprite = sprite; + size = sprite.originalSize / 10; + } +} + /// Represents the ground bases of the [_SpaceshipRailRamp]. class _SpaceshipRailBase extends BodyComponent with InitialPosition, Layered { _SpaceshipRailBase({required this.radius}) @@ -200,9 +222,9 @@ class SpaceshipRailExit extends RampOpening { @override Shape get shape { return ArcShape( - center: Vector2(-29, -17.8), + center: Vector2(-28, -19), arcRadius: 2.5, - angle: math.pi * 0.8, + angle: math.pi * 0.4, rotation: -0.16, ); } diff --git a/packages/pinball_components/lib/src/components/spaceship_ramp.dart b/packages/pinball_components/lib/src/components/spaceship_ramp.dart index db9dbe85..6fb6cda0 100644 --- a/packages/pinball_components/lib/src/components/spaceship_ramp.dart +++ b/packages/pinball_components/lib/src/components/spaceship_ramp.dart @@ -116,7 +116,7 @@ class _SpaceshipRampBackground extends BodyComponent Future _loadSprites() async { final spriteRamp = await gameRef.loadSprite( - Assets.images.spaceshipRamp.spaceshipRamp.keyName, + Assets.images.spaceship.ramp.main.keyName, ); final spriteRampComponent = SpriteComponent( @@ -127,7 +127,7 @@ class _SpaceshipRampBackground extends BodyComponent ); final spriteRailingBg = await gameRef.loadSprite( - Assets.images.spaceshipRamp.spaceshipRailingBg.keyName, + Assets.images.spaceship.ramp.railingBackground.keyName, ); final spriteRailingBgComponent = SpriteComponent( sprite: spriteRailingBg, @@ -201,7 +201,7 @@ class _SpaceshipRampForegroundRailing extends BodyComponent Future _loadSprites() async { final spriteRailingFg = await gameRef.loadSprite( - Assets.images.spaceshipRamp.spaceshipRailingFg.keyName, + Assets.images.spaceship.ramp.railingForeground.keyName, ); final spriteRailingFgComponent = SpriteComponent( sprite: spriteRailingFg, diff --git a/packages/pinball_components/pubspec.yaml b/packages/pinball_components/pubspec.yaml index f513b054..0e5eb37a 100644 --- a/packages/pinball_components/pubspec.yaml +++ b/packages/pinball_components/pubspec.yaml @@ -34,7 +34,9 @@ flutter: - assets/images/dash_bumper/a/ - assets/images/dash_bumper/b/ - assets/images/dash_bumper/main/ - - assets/images/spaceship_ramp/ + - assets/images/spaceship/ + - assets/images/spaceship/rail/ + - assets/images/spaceship/ramp/ - assets/images/chrome_dino/ flutter_gen: