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
pull/142/head
Allison Ryan 3 years ago committed by GitHub
parent fcca84be90
commit 4e0f0ffe29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -13,8 +13,6 @@ extension PinballGameAssetsX on PinballGame {
images.load(components.Assets.images.flipper.right.keyName), images.load(components.Assets.images.flipper.right.keyName),
images.load(components.Assets.images.baseboard.left.keyName), images.load(components.Assets.images.baseboard.left.keyName),
images.load(components.Assets.images.baseboard.right.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.ramp.keyName),
images.load( images.load(
components.Assets.images.launchRamp.foregroundRailing.keyName, 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.dashBumper.main.inactive.keyName),
images.load(components.Assets.images.boundary.bottom.keyName), images.load(components.Assets.images.boundary.bottom.keyName),
images.load(components.Assets.images.boundary.outer.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( images.load(
components.Assets.images.spaceshipRamp.spaceshipRailingBg.keyName, components.Assets.images.spaceship.ramp.railingBackground.keyName,
), ),
images.load( images.load(
components.Assets.images.spaceshipRamp.spaceshipRailingFg.keyName, components.Assets.images.spaceship.ramp.railingForeground.keyName,
),
images.load(
components.Assets.images.spaceshipRamp.spaceshipDropTube.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.mouth.keyName),
images.load(components.Assets.images.chromeDino.head.keyName), images.load(components.Assets.images.chromeDino.head.keyName),
images.load(Assets.images.components.background.path), images.load(Assets.images.components.background.path),

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@ -28,17 +28,7 @@ class $AssetsImagesGen {
$AssetsImagesLaunchRampGen get launchRamp => $AssetsImagesLaunchRampGen get launchRamp =>
const $AssetsImagesLaunchRampGen(); const $AssetsImagesLaunchRampGen();
$AssetsImagesSpaceshipGen get spaceship => const $AssetsImagesSpaceshipGen();
/// 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');
} }
class $AssetsImagesBaseboardGen { class $AssetsImagesBaseboardGen {
@ -122,24 +112,21 @@ class $AssetsImagesLaunchRampGen {
const AssetGenImage('assets/images/launch_ramp/ramp.png'); const AssetGenImage('assets/images/launch_ramp/ramp.png');
} }
class $AssetsImagesSpaceshipRampGen { class $AssetsImagesSpaceshipGen {
const $AssetsImagesSpaceshipRampGen(); const $AssetsImagesSpaceshipGen();
/// File path: assets/images/spaceship_ramp/spaceship_drop_tube.png
AssetGenImage get spaceshipDropTube => const AssetGenImage(
'assets/images/spaceship_ramp/spaceship_drop_tube.png');
/// File path: assets/images/spaceship_ramp/spaceship_railing_bg.png /// File path: assets/images/spaceship/bridge.png
AssetGenImage get spaceshipRailingBg => const AssetGenImage( AssetGenImage get bridge =>
'assets/images/spaceship_ramp/spaceship_railing_bg.png'); const AssetGenImage('assets/images/spaceship/bridge.png');
/// File path: assets/images/spaceship_ramp/spaceship_railing_fg.png $AssetsImagesSpaceshipRailGen get rail =>
AssetGenImage get spaceshipRailingFg => const AssetGenImage( const $AssetsImagesSpaceshipRailGen();
'assets/images/spaceship_ramp/spaceship_railing_fg.png'); $AssetsImagesSpaceshipRampGen get ramp =>
const $AssetsImagesSpaceshipRampGen();
/// File path: assets/images/spaceship_ramp/spaceship_ramp.png /// File path: assets/images/spaceship/saucer.png
AssetGenImage get spaceshipRamp => AssetGenImage get saucer =>
const AssetGenImage('assets/images/spaceship_ramp/spaceship_ramp.png'); const AssetGenImage('assets/images/spaceship/saucer.png');
} }
class $AssetsImagesDashBumperAGen { class $AssetsImagesDashBumperAGen {
@ -178,6 +165,34 @@ class $AssetsImagesDashBumperMainGen {
const AssetGenImage('assets/images/dash_bumper/main/inactive.png'); 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 { class Assets {
Assets._(); Assets._();

@ -59,7 +59,7 @@ class SpaceshipSaucer extends BodyComponent with InitialPosition, Layered {
Future<void> onLoad() async { Future<void> onLoad() async {
await super.onLoad(); await super.onLoad();
final sprite = await gameRef.loadSprite( final sprite = await gameRef.loadSprite(
Assets.images.spaceshipSaucer.keyName, Assets.images.spaceship.saucer.keyName,
); );
await add( await add(
@ -106,7 +106,7 @@ class AndroidHead extends BodyComponent with InitialPosition, Layered {
renderBody = false; renderBody = false;
final sprite = await gameRef.images.load( final sprite = await gameRef.images.load(
Assets.images.spaceshipBridge.keyName, Assets.images.spaceship.bridge.keyName,
); );
await add( await add(

@ -23,18 +23,20 @@ class SpaceshipRail extends Forge2DBlueprint {
SpaceshipRailExitBallContactCallback(), SpaceshipRailExitBallContactCallback(),
]); ]);
final exitRailRamp = _SpaceshipRailRamp(); final railRamp = _SpaceshipRailRamp();
final exitRailEnd = SpaceshipRailExit(); final railEnd = SpaceshipRailExit();
final topBase = _SpaceshipRailBase(radius: 0.55) final topBase = _SpaceshipRailBase(radius: 0.55)
..initialPosition = Vector2(-26.15, 18.65); ..initialPosition = Vector2(-26.15, 18.65);
final bottomBase = _SpaceshipRailBase(radius: 0.8) final bottomBase = _SpaceshipRailBase(radius: 0.8)
..initialPosition = Vector2(-25.5, -12.9); ..initialPosition = Vector2(-25.5, -12.9);
final railForeground = _SpaceshipRailForeground();
addAll([ addAll([
exitRailRamp, railRamp,
exitRailEnd, railEnd,
topBase, topBase,
bottomBase, bottomBase,
railForeground,
]); ]);
} }
} }
@ -142,7 +144,7 @@ class _SpaceshipRailRamp extends BodyComponent with InitialPosition, Layered {
Future<void> _loadSprite() async { Future<void> _loadSprite() async {
final sprite = await gameRef.loadSprite( final sprite = await gameRef.loadSprite(
Assets.images.spaceshipRamp.spaceshipDropTube.keyName, Assets.images.spaceship.rail.main.keyName,
); );
final spriteComponent = SpriteComponent( final spriteComponent = SpriteComponent(
sprite: sprite, 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<void> 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]. /// Represents the ground bases of the [_SpaceshipRailRamp].
class _SpaceshipRailBase extends BodyComponent with InitialPosition, Layered { class _SpaceshipRailBase extends BodyComponent with InitialPosition, Layered {
_SpaceshipRailBase({required this.radius}) _SpaceshipRailBase({required this.radius})
@ -200,9 +222,9 @@ class SpaceshipRailExit extends RampOpening {
@override @override
Shape get shape { Shape get shape {
return ArcShape( return ArcShape(
center: Vector2(-29, -17.8), center: Vector2(-28, -19),
arcRadius: 2.5, arcRadius: 2.5,
angle: math.pi * 0.8, angle: math.pi * 0.4,
rotation: -0.16, rotation: -0.16,
); );
} }

@ -116,7 +116,7 @@ class _SpaceshipRampBackground extends BodyComponent
Future<void> _loadSprites() async { Future<void> _loadSprites() async {
final spriteRamp = await gameRef.loadSprite( final spriteRamp = await gameRef.loadSprite(
Assets.images.spaceshipRamp.spaceshipRamp.keyName, Assets.images.spaceship.ramp.main.keyName,
); );
final spriteRampComponent = SpriteComponent( final spriteRampComponent = SpriteComponent(
@ -127,7 +127,7 @@ class _SpaceshipRampBackground extends BodyComponent
); );
final spriteRailingBg = await gameRef.loadSprite( final spriteRailingBg = await gameRef.loadSprite(
Assets.images.spaceshipRamp.spaceshipRailingBg.keyName, Assets.images.spaceship.ramp.railingBackground.keyName,
); );
final spriteRailingBgComponent = SpriteComponent( final spriteRailingBgComponent = SpriteComponent(
sprite: spriteRailingBg, sprite: spriteRailingBg,
@ -201,7 +201,7 @@ class _SpaceshipRampForegroundRailing extends BodyComponent
Future<void> _loadSprites() async { Future<void> _loadSprites() async {
final spriteRailingFg = await gameRef.loadSprite( final spriteRailingFg = await gameRef.loadSprite(
Assets.images.spaceshipRamp.spaceshipRailingFg.keyName, Assets.images.spaceship.ramp.railingForeground.keyName,
); );
final spriteRailingFgComponent = SpriteComponent( final spriteRailingFgComponent = SpriteComponent(
sprite: spriteRailingFg, sprite: spriteRailingFg,

@ -34,7 +34,9 @@ flutter:
- assets/images/dash_bumper/a/ - assets/images/dash_bumper/a/
- assets/images/dash_bumper/b/ - assets/images/dash_bumper/b/
- assets/images/dash_bumper/main/ - assets/images/dash_bumper/main/
- assets/images/spaceship_ramp/ - assets/images/spaceship/
- assets/images/spaceship/rail/
- assets/images/spaceship/ramp/
- assets/images/chrome_dino/ - assets/images/chrome_dino/
flutter_gen: flutter_gen:

Loading…
Cancel
Save