diff --git a/lib/game/components/android_acres.dart b/lib/game/components/android_acres.dart index da8e4949..2af7335f 100644 --- a/lib/game/components/android_acres.dart +++ b/lib/game/components/android_acres.dart @@ -23,7 +23,7 @@ class AndroidAcres extends Blueprint { children: [ ScoringBehavior(points: 20000), ], - )..initialPosition = Vector2(-32.6, -9.2), + )..initialPosition = Vector2(-32.8, -9.2), AndroidBumper.cow( children: [ ScoringBehavior(points: 20), diff --git a/lib/game/game_assets.dart b/lib/game/game_assets.dart index ab7a6169..84b206d9 100644 --- a/lib/game/game_assets.dart +++ b/lib/game/game_assets.dart @@ -13,6 +13,7 @@ extension PinballGameAssetsX on PinballGame { const dinoTheme = DinoTheme(); return [ + images.load(components.Assets.images.boardBackground.keyName), images.load(components.Assets.images.ball.ball.keyName), images.load(components.Assets.images.ball.flameEffect.keyName), images.load(components.Assets.images.signpost.inactive.keyName), diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index 6933e649..a293d7db 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -46,6 +46,7 @@ class PinballGame extends Forge2DGame unawaited(add(gameFlowController = GameFlowController(this))); unawaited(add(CameraController(this))); unawaited(add(Backboard.waiting(position: Vector2(0, -88)))); + await add(BoardBackgroundSpriteComponent()); await add(Drain()); await add(BottomGroup()); unawaited(addFromBlueprint(Boundaries())); @@ -185,12 +186,12 @@ class DebugPinballGame extends PinballGame with FPSCounter { @override Future onLoad() async { await super.onLoad(); - await _loadBackground(); await add(_DebugInformation()); } - // TODO(alestiago): Move to PinballGame once we have the real background - // component. + // TODO(allisonryan0002): Remove after google letters have been correctly + // placed. + // ignore: unused_element Future _loadBackground() async { final sprite = await loadSprite( Assets.images.components.background.path, @@ -201,7 +202,7 @@ class DebugPinballGame extends PinballGame with FPSCounter { anchor: Anchor.center, ) ..position = Vector2(0, -7.8) - ..priority = RenderPriority.background; + ..priority = RenderPriority.boardBackground; await add(spriteComponent); } diff --git a/packages/pinball_components/assets/images/board-background.png b/packages/pinball_components/assets/images/board-background.png new file mode 100644 index 00000000..979a0873 Binary files /dev/null and b/packages/pinball_components/assets/images/board-background.png differ diff --git a/packages/pinball_components/lib/gen/assets.gen.dart b/packages/pinball_components/lib/gen/assets.gen.dart index 3c7b2454..0a67751b 100644 --- a/packages/pinball_components/lib/gen/assets.gen.dart +++ b/packages/pinball_components/lib/gen/assets.gen.dart @@ -14,6 +14,10 @@ class $AssetsImagesGen { $AssetsImagesBackboardGen get backboard => const $AssetsImagesBackboardGen(); $AssetsImagesBallGen get ball => const $AssetsImagesBallGen(); $AssetsImagesBaseboardGen get baseboard => const $AssetsImagesBaseboardGen(); + + /// File path: assets/images/board-background.png + AssetGenImage get boardBackground => + const AssetGenImage('assets/images/board-background.png'); $AssetsImagesBoundaryGen get boundary => const $AssetsImagesBoundaryGen(); $AssetsImagesDashGen get dash => const $AssetsImagesDashGen(); $AssetsImagesDinoGen get dino => const $AssetsImagesDinoGen(); diff --git a/packages/pinball_components/lib/src/components/board_background_sprite_component.dart b/packages/pinball_components/lib/src/components/board_background_sprite_component.dart new file mode 100644 index 00000000..1a4e34c6 --- /dev/null +++ b/packages/pinball_components/lib/src/components/board_background_sprite_component.dart @@ -0,0 +1,26 @@ +// ignore_for_file: public_member_api_docs + +import 'package:flame/components.dart'; +import 'package:pinball_components/pinball_components.dart'; + +class BoardBackgroundSpriteComponent extends SpriteComponent with HasGameRef { + BoardBackgroundSpriteComponent() + : super( + anchor: Anchor.center, + priority: RenderPriority.boardBackground, + position: Vector2(0, -1), + ); + + @override + Future onLoad() async { + await super.onLoad(); + + final sprite = Sprite( + gameRef.images.fromCache( + Assets.images.boardBackground.keyName, + ), + ); + this.sprite = sprite; + size = sprite.originalSize / 10; + } +} diff --git a/packages/pinball_components/lib/src/components/components.dart b/packages/pinball_components/lib/src/components/components.dart index 2f0e4031..2781030e 100644 --- a/packages/pinball_components/lib/src/components/components.dart +++ b/packages/pinball_components/lib/src/components/components.dart @@ -3,6 +3,7 @@ export 'android_spaceship.dart'; export 'backboard/backboard.dart'; export 'ball.dart'; export 'baseboard.dart'; +export 'board_background_sprite_component.dart'; export 'board_dimensions.dart'; export 'board_side.dart'; export 'boundaries.dart'; diff --git a/packages/pinball_components/lib/src/components/render_priority.dart b/packages/pinball_components/lib/src/components/render_priority.dart index 3e7d5a29..2359229f 100644 --- a/packages/pinball_components/lib/src/components/render_priority.dart +++ b/packages/pinball_components/lib/src/components/render_priority.dart @@ -33,13 +33,13 @@ abstract class RenderPriority { // TODO(allisonryan0002): fix this magic priority. Could bump all priorities // so there are no negatives. - static const int background = 3 * _below + _base; + static const int boardBackground = 3 * _below + _base; // Boundaries static const int bottomBoundary = _above + dinoBottomWall; - static const int outerBoundary = _above + background; + static const int outerBoundary = _above + boardBackground; static const int outerBottomBoundary = _above + rocket; diff --git a/packages/pinball_components/pubspec.yaml b/packages/pinball_components/pubspec.yaml index 0769f484..29b4e31a 100644 --- a/packages/pinball_components/pubspec.yaml +++ b/packages/pinball_components/pubspec.yaml @@ -45,6 +45,7 @@ flutter: - asset: fonts/PixeloidMono-1G8ae.ttf assets: + - assets/images/ - assets/images/ball/ - assets/images/baseboard/ - assets/images/boundary/