diff --git a/lib/game/components/wall.dart b/lib/game/components/wall.dart index ba8af5e7..aaae1d23 100644 --- a/lib/game/components/wall.dart +++ b/lib/game/components/wall.dart @@ -39,22 +39,6 @@ class Wall extends BodyComponent { } } -/// Create top, left, and right [Wall]s for the game board. -List createBoundaries(Forge2DGame game) { - final topLeft = BoardDimensions.bounds.topLeft.toVector2() + Vector2(18.6, 0); - final bottomRight = BoardDimensions.bounds.bottomRight.toVector2(); - - final topRight = - BoardDimensions.bounds.topRight.toVector2() - Vector2(18.6, 0); - final bottomLeft = BoardDimensions.bounds.bottomLeft.toVector2(); - - return [ - Wall(start: topLeft, end: topRight), - Wall(start: topRight, end: bottomRight), - Wall(start: topLeft, end: bottomLeft), - ]; -} - /// {@template bottom_wall} /// [Wall] located at the bottom of the board. /// diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index 4865e820..d73fb33c 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -46,7 +46,8 @@ class PinballGame extends Forge2DGame unawaited(add(CameraController(this))); unawaited(add(Backboard.waiting(position: Vector2(0, -88)))); - await _addGameBoundaries(); + // TODO(allisonryan0002): banish Wall and Board classes in later PR. + await add(BottomWall()); unawaited(addFromBlueprint(Boundaries())); unawaited(addFromBlueprint(ControlledSparkyComputer())); @@ -77,11 +78,6 @@ class PinballGame extends Forge2DGame addContactCallback(BottomWallBallContactCallback()); } - Future _addGameBoundaries() async { - await add(BottomWall()); - createBoundaries(this).forEach(add); - } - Future _addBonusWord() async { await add( GoogleWord( diff --git a/packages/pinball_components/assets/images/baseboard/left.png b/packages/pinball_components/assets/images/baseboard/left.png index 17253554..d13b4e31 100644 Binary files a/packages/pinball_components/assets/images/baseboard/left.png and b/packages/pinball_components/assets/images/baseboard/left.png differ diff --git a/packages/pinball_components/assets/images/baseboard/right.png b/packages/pinball_components/assets/images/baseboard/right.png index 081a1782..8ad93045 100644 Binary files a/packages/pinball_components/assets/images/baseboard/right.png and b/packages/pinball_components/assets/images/baseboard/right.png differ diff --git a/packages/pinball_components/assets/images/boundary/outer.png b/packages/pinball_components/assets/images/boundary/outer.png index c0b81e96..3c06cb6c 100644 Binary files a/packages/pinball_components/assets/images/boundary/outer.png and b/packages/pinball_components/assets/images/boundary/outer.png differ diff --git a/packages/pinball_components/assets/images/dash/animatronic.png b/packages/pinball_components/assets/images/dash/animatronic.png index e67cafef..13f7b794 100644 Binary files a/packages/pinball_components/assets/images/dash/animatronic.png and b/packages/pinball_components/assets/images/dash/animatronic.png differ diff --git a/packages/pinball_components/assets/images/flipper/left.png b/packages/pinball_components/assets/images/flipper/left.png index 42798f28..3aefa225 100644 Binary files a/packages/pinball_components/assets/images/flipper/left.png and b/packages/pinball_components/assets/images/flipper/left.png differ diff --git a/packages/pinball_components/assets/images/flipper/right.png b/packages/pinball_components/assets/images/flipper/right.png index 86fbc81d..3627c86c 100644 Binary files a/packages/pinball_components/assets/images/flipper/right.png and b/packages/pinball_components/assets/images/flipper/right.png differ diff --git a/packages/pinball_components/assets/images/slingshot/lower.png b/packages/pinball_components/assets/images/slingshot/lower.png index 71a6a277..61e01ba1 100644 Binary files a/packages/pinball_components/assets/images/slingshot/lower.png and b/packages/pinball_components/assets/images/slingshot/lower.png differ diff --git a/packages/pinball_components/assets/images/slingshot/upper.png b/packages/pinball_components/assets/images/slingshot/upper.png index e6b42ded..d86bd925 100644 Binary files a/packages/pinball_components/assets/images/slingshot/upper.png and b/packages/pinball_components/assets/images/slingshot/upper.png differ diff --git a/packages/pinball_components/lib/src/components/baseboard.dart b/packages/pinball_components/lib/src/components/baseboard.dart index 29d7285b..07f39070 100644 --- a/packages/pinball_components/lib/src/components/baseboard.dart +++ b/packages/pinball_components/lib/src/components/baseboard.dart @@ -22,7 +22,6 @@ class Baseboard extends BodyComponent with InitialPosition { final BoardSide _side; List _createFixtureDefs() { - final fixturesDef = []; final direction = _side.direction; const arcsAngle = 1.11; final arcsRotation = (_side.isLeft) ? -2.7 : -1.6; @@ -30,12 +29,10 @@ class Baseboard extends BodyComponent with InitialPosition { final pegBumperShape = CircleShape()..radius = 0.7; pegBumperShape.position.setValues(11.11 * direction, -7.15); final pegBumperFixtureDef = FixtureDef(pegBumperShape); - fixturesDef.add(pegBumperFixtureDef); final topCircleShape = CircleShape()..radius = 0.7; topCircleShape.position.setValues(9.71 * direction, -4.95); final topCircleFixtureDef = FixtureDef(topCircleShape); - fixturesDef.add(topCircleFixtureDef); final innerEdgeShape = EdgeShape() ..set( @@ -43,7 +40,6 @@ class Baseboard extends BodyComponent with InitialPosition { Vector2(5.29 * direction, 0.95), ); final innerEdgeShapeFixtureDef = FixtureDef(innerEdgeShape); - fixturesDef.add(innerEdgeShapeFixtureDef); final outerEdgeShape = EdgeShape() ..set( @@ -51,7 +47,6 @@ class Baseboard extends BodyComponent with InitialPosition { Vector2(3.79 * direction, 5.95), ); final outerEdgeShapeFixtureDef = FixtureDef(outerEdgeShape); - fixturesDef.add(outerEdgeShapeFixtureDef); final upperArcShape = ArcShape( center: Vector2(0.09 * direction, -2.15), @@ -60,7 +55,6 @@ class Baseboard extends BodyComponent with InitialPosition { rotation: arcsRotation, ); final upperArcFixtureDef = FixtureDef(upperArcShape); - fixturesDef.add(upperArcFixtureDef); final lowerArcShape = ArcShape( center: Vector2(0.09 * direction, 3.35), @@ -69,7 +63,6 @@ class Baseboard extends BodyComponent with InitialPosition { rotation: arcsRotation, ); final lowerArcFixtureDef = FixtureDef(lowerArcShape); - fixturesDef.add(lowerArcFixtureDef); final bottomRectangle = PolygonShape() ..setAsBox( @@ -79,9 +72,16 @@ class Baseboard extends BodyComponent with InitialPosition { 0, ); final bottomRectangleFixtureDef = FixtureDef(bottomRectangle); - fixturesDef.add(bottomRectangleFixtureDef); - return fixturesDef; + return [ + pegBumperFixtureDef, + topCircleFixtureDef, + innerEdgeShapeFixtureDef, + outerEdgeShapeFixtureDef, + upperArcFixtureDef, + lowerArcFixtureDef, + bottomRectangleFixtureDef, + ]; } @override @@ -100,21 +100,26 @@ class Baseboard extends BodyComponent with InitialPosition { } class _BaseboardSpriteComponent extends SpriteComponent with HasGameRef { - _BaseboardSpriteComponent({required BoardSide side}) : _side = side; + _BaseboardSpriteComponent({required BoardSide side}) + : _side = side, + super( + anchor: Anchor.center, + position: Vector2(0.4 * -side.direction, 0), + ); final BoardSide _side; @override Future onLoad() async { await super.onLoad(); - final sprite = await gameRef.loadSprite( - (_side.isLeft) - ? Assets.images.baseboard.left.keyName - : Assets.images.baseboard.right.keyName, + final sprite = Sprite( + gameRef.images.fromCache( + (_side.isLeft) + ? Assets.images.baseboard.left.keyName + : Assets.images.baseboard.right.keyName, + ), ); this.sprite = sprite; size = sprite.originalSize / 10; - position = Vector2(0.4 * -_side.direction, 0); - anchor = Anchor.center; } } diff --git a/packages/pinball_components/lib/src/components/boundaries.dart b/packages/pinball_components/lib/src/components/boundaries.dart index f4f8c495..254cbfcf 100644 --- a/packages/pinball_components/lib/src/components/boundaries.dart +++ b/packages/pinball_components/lib/src/components/boundaries.dart @@ -32,8 +32,6 @@ class _BottomBoundary extends BodyComponent with InitialPosition { } List _createFixtureDefs() { - final fixturesDefs = []; - final bottomLeftCurve = BezierCurveShape( controlPoints: [ Vector2(-43.9, 41.8), @@ -42,7 +40,6 @@ class _BottomBoundary extends BodyComponent with InitialPosition { ], ); final bottomLeftCurveFixtureDef = FixtureDef(bottomLeftCurve); - fixturesDefs.add(bottomLeftCurveFixtureDef); final bottomRightCurve = BezierCurveShape( controlPoints: [ @@ -52,9 +49,8 @@ class _BottomBoundary extends BodyComponent with InitialPosition { ], ); final bottomRightCurveFixtureDef = FixtureDef(bottomRightCurve); - fixturesDefs.add(bottomRightCurveFixtureDef); - return fixturesDefs; + return [bottomLeftCurveFixtureDef, bottomRightCurveFixtureDef]; } @override @@ -68,16 +64,22 @@ class _BottomBoundary extends BodyComponent with InitialPosition { } class _BottomBoundarySpriteComponent extends SpriteComponent with HasGameRef { + _BottomBoundarySpriteComponent() + : super( + anchor: Anchor.center, + position: Vector2(-5.4, 55.6), + ); + @override Future onLoad() async { await super.onLoad(); - final sprite = await gameRef.loadSprite( - Assets.images.boundary.bottom.keyName, + final sprite = Sprite( + gameRef.images.fromCache( + Assets.images.boundary.bottom.keyName, + ), ); this.sprite = sprite; size = sprite.originalSize / 10; - anchor = Anchor.center; - position = Vector2(-5.4, 55.6); } } @@ -96,15 +98,12 @@ class _OuterBoundary extends BodyComponent with InitialPosition { } List _createFixtureDefs() { - final fixturesDefs = []; - final topWall = EdgeShape() ..set( Vector2(3.6, -70.2), Vector2(-14.1, -70.2), ); final topWallFixtureDef = FixtureDef(topWall); - fixturesDefs.add(topWallFixtureDef); final topLeftCurve = BezierCurveShape( controlPoints: [ @@ -114,7 +113,6 @@ class _OuterBoundary extends BodyComponent with InitialPosition { ], ); final topLeftCurveFixtureDef = FixtureDef(topLeftCurve); - fixturesDefs.add(topLeftCurveFixtureDef); final leftWall = EdgeShape() ..set( @@ -122,9 +120,12 @@ class _OuterBoundary extends BodyComponent with InitialPosition { Vector2(-43.9, 41.8), ); final leftWallFixtureDef = FixtureDef(leftWall); - fixturesDefs.add(leftWallFixtureDef); - return fixturesDefs; + return [ + topWallFixtureDef, + topLeftCurveFixtureDef, + leftWallFixtureDef, + ]; } @override @@ -138,15 +139,21 @@ class _OuterBoundary extends BodyComponent with InitialPosition { } class _OuterBoundarySpriteComponent extends SpriteComponent with HasGameRef { + _OuterBoundarySpriteComponent() + : super( + anchor: Anchor.center, + position: Vector2(0, -7.8), + ); + @override Future onLoad() async { await super.onLoad(); - final sprite = await gameRef.loadSprite( - Assets.images.boundary.outer.keyName, + final sprite = Sprite( + gameRef.images.fromCache( + Assets.images.boundary.outer.keyName, + ), ); this.sprite = sprite; size = sprite.originalSize / 10; - anchor = Anchor.center; - position = Vector2(-0.2, -1.4); } } diff --git a/packages/pinball_components/lib/src/components/dash_animatronic.dart b/packages/pinball_components/lib/src/components/dash_animatronic.dart index 634c5574..f1c5b145 100644 --- a/packages/pinball_components/lib/src/components/dash_animatronic.dart +++ b/packages/pinball_components/lib/src/components/dash_animatronic.dart @@ -17,12 +17,12 @@ class DashAnimatronic extends SpriteAnimationComponent with HasGameRef { Future onLoad() async { await super.onLoad(); - final spriteSheet = await gameRef.images.load( + final spriteSheet = gameRef.images.fromCache( Assets.images.dash.animatronic.keyName, ); - const amountPerRow = 12; - const amountPerColumn = 8; + const amountPerRow = 13; + const amountPerColumn = 6; final textureSize = Vector2( spriteSheet.width / amountPerRow, spriteSheet.height / amountPerColumn, diff --git a/packages/pinball_components/lib/src/components/flipper.dart b/packages/pinball_components/lib/src/components/flipper.dart index 1d0a3c5d..bd826668 100644 --- a/packages/pinball_components/lib/src/components/flipper.dart +++ b/packages/pinball_components/lib/src/components/flipper.dart @@ -60,7 +60,6 @@ class Flipper extends BodyComponent with KeyboardHandler, InitialPosition { } List _createFixtureDefs() { - final fixturesDef = []; final direction = side.direction; final assetShadow = Flipper.size.x * 0.012 * -direction; @@ -77,7 +76,6 @@ class Flipper extends BodyComponent with KeyboardHandler, InitialPosition { 0, ); final bigCircleFixtureDef = FixtureDef(bigCircleShape); - fixturesDef.add(bigCircleFixtureDef); final smallCircleShape = CircleShape()..radius = size.y * 0.23; smallCircleShape.position.setValues( @@ -87,7 +85,6 @@ class Flipper extends BodyComponent with KeyboardHandler, InitialPosition { 0, ); final smallCircleFixtureDef = FixtureDef(smallCircleShape); - fixturesDef.add(smallCircleFixtureDef); final trapeziumVertices = side.isLeft ? [ @@ -108,9 +105,12 @@ class Flipper extends BodyComponent with KeyboardHandler, InitialPosition { density: 50, // TODO(alestiago): Use a proper density. friction: .1, // TODO(alestiago): Use a proper friction. ); - fixturesDef.add(trapeziumFixtureDef); - return fixturesDef; + return [ + bigCircleFixtureDef, + smallCircleFixtureDef, + trapeziumFixtureDef, + ]; } @override @@ -136,21 +136,24 @@ class Flipper extends BodyComponent with KeyboardHandler, InitialPosition { } class _FlipperSpriteComponent extends SpriteComponent with HasGameRef { - _FlipperSpriteComponent({required BoardSide side}) : _side = side; + _FlipperSpriteComponent({required BoardSide side}) + : _side = side, + super(anchor: Anchor.center); final BoardSide _side; @override Future onLoad() async { await super.onLoad(); - final sprite = await gameRef.loadSprite( - (_side.isLeft) - ? Assets.images.flipper.left.keyName - : Assets.images.flipper.right.keyName, + final sprite = Sprite( + gameRef.images.fromCache( + (_side.isLeft) + ? Assets.images.flipper.left.keyName + : Assets.images.flipper.right.keyName, + ), ); this.sprite = sprite; size = sprite.originalSize / 10; - anchor = Anchor.center; } } diff --git a/packages/pinball_components/lib/src/components/render_priority.dart b/packages/pinball_components/lib/src/components/render_priority.dart index 1b02326f..b179cce9 100644 --- a/packages/pinball_components/lib/src/components/render_priority.dart +++ b/packages/pinball_components/lib/src/components/render_priority.dart @@ -49,7 +49,7 @@ abstract class RenderPriority { static const int launchRamp = _above + outerBoudary; - static const int launchRampForegroundRailing = _above + ballOnLaunchRamp; + static const int launchRampForegroundRailing = _below + ballOnBoard; static const int plunger = _above + launchRamp; @@ -63,7 +63,7 @@ abstract class RenderPriority { static const int dinoBottomWall = _above + dino; - static const int slingshot = _above + ballOnBoard; + static const int slingshot = _above + dinoBottomWall; // Flutter Forest @@ -71,7 +71,7 @@ abstract class RenderPriority { static const int dashBumper = _above + ballOnBoard; - static const int dashAnimatronic = _above + launchRampForegroundRailing; + static const int dashAnimatronic = 2 * _above + launchRamp; // Sparky Fire Zone diff --git a/packages/pinball_components/lib/src/components/slingshot.dart b/packages/pinball_components/lib/src/components/slingshot.dart index 4d098c7a..35346584 100644 --- a/packages/pinball_components/lib/src/components/slingshot.dart +++ b/packages/pinball_components/lib/src/components/slingshot.dart @@ -49,18 +49,15 @@ class Slingshot extends BodyComponent with InitialPosition { final double _angle; List _createFixtureDefs() { - final fixturesDef = []; const circleRadius = 1.55; final topCircleShape = CircleShape()..radius = circleRadius; topCircleShape.position.setValues(0, -_length / 2); final topCircleFixtureDef = FixtureDef(topCircleShape); - fixturesDef.add(topCircleFixtureDef); final bottomCircleShape = CircleShape()..radius = circleRadius; bottomCircleShape.position.setValues(0, _length / 2); final bottomCircleFixtureDef = FixtureDef(bottomCircleShape); - fixturesDef.add(bottomCircleFixtureDef); final leftEdgeShape = EdgeShape() ..set( @@ -72,8 +69,6 @@ class Slingshot extends BodyComponent with InitialPosition { restitution: 5, ); - fixturesDef.add(leftEdgeShapeFixtureDef); - final rightEdgeShape = EdgeShape() ..set( Vector2(-circleRadius, _length / 2), @@ -83,9 +78,13 @@ class Slingshot extends BodyComponent with InitialPosition { rightEdgeShape, restitution: 5, ); - fixturesDef.add(rightEdgeShapeFixtureDef); - return fixturesDef; + return [ + topCircleFixtureDef, + bottomCircleFixtureDef, + leftEdgeShapeFixtureDef, + rightEdgeShapeFixtureDef, + ]; } @override @@ -118,7 +117,7 @@ class _SlinghsotSpriteComponent extends SpriteComponent with HasGameRef { @override Future onLoad() async { await super.onLoad(); - final sprite = await gameRef.loadSprite(_path); + final sprite = Sprite(gameRef.images.fromCache(_path)); this.sprite = sprite; size = sprite.originalSize / 10; } diff --git a/packages/pinball_components/test/src/components/baseboard_test.dart b/packages/pinball_components/test/src/components/baseboard_test.dart index 82a6475e..101e3e21 100644 --- a/packages/pinball_components/test/src/components/baseboard_test.dart +++ b/packages/pinball_components/test/src/components/baseboard_test.dart @@ -10,11 +10,16 @@ import '../../helpers/helpers.dart'; void main() { group('Baseboard', () { TestWidgetsFlutterBinding.ensureInitialized(); - final flameTester = FlameTester(TestGame.new); + final assets = [ + Assets.images.baseboard.left.keyName, + Assets.images.baseboard.right.keyName, + ]; + final flameTester = FlameTester(() => TestGame(assets)); flameTester.testGameWidget( 'renders correctly', setUp: (game, tester) async { + await game.images.loadAll(assets); final leftBaseboard = Baseboard( side: BoardSide.left, )..initialPosition = Vector2(-20, 0); @@ -24,6 +29,7 @@ void main() { await game.ensureAddAll([leftBaseboard, rightBaseboard]); game.camera.followVector2(Vector2.zero()); + await tester.pump(); }, verify: (game, tester) async { await expectLater( diff --git a/packages/pinball_components/test/src/components/boundaries_test.dart b/packages/pinball_components/test/src/components/boundaries_test.dart index e62d63e3..9affe0b7 100644 --- a/packages/pinball_components/test/src/components/boundaries_test.dart +++ b/packages/pinball_components/test/src/components/boundaries_test.dart @@ -10,15 +10,20 @@ import '../../helpers/helpers.dart'; void main() { group('Boundaries', () { + final assets = [ + Assets.images.boundary.outer.keyName, + Assets.images.boundary.bottom.keyName, + ]; final tester = FlameTester(TestGame.new); tester.testGameWidget( 'render correctly', setUp: (game, tester) async { + await game.images.loadAll(assets); await game.addFromBlueprint(Boundaries()); game.camera.followVector2(Vector2.zero()); - game.camera.zoom = 3.9; - await game.ready(); + game.camera.zoom = 3.2; + await tester.pump(); }, verify: (game, tester) async { await expectLater( diff --git a/packages/pinball_components/test/src/components/dash_animatronic_test.dart b/packages/pinball_components/test/src/components/dash_animatronic_test.dart index e4b31ca6..8b5d0e30 100644 --- a/packages/pinball_components/test/src/components/dash_animatronic_test.dart +++ b/packages/pinball_components/test/src/components/dash_animatronic_test.dart @@ -9,29 +9,33 @@ import '../../helpers/helpers.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); - final flameTester = FlameTester(TestGame.new); + final asset = Assets.images.dash.animatronic.keyName; + final flameTester = FlameTester(() => TestGame([asset])); group('DashAnimatronic', () { flameTester.testGameWidget( 'renders correctly', setUp: (game, tester) async { + await game.images.load(asset); await game.ensureAdd(DashAnimatronic()..playing = true); game.camera.followVector2(Vector2.zero()); + await tester.pump(); }, verify: (game, tester) async { + const animationDuration = 3.25; await expectLater( find.byGame(), matchesGoldenFile('golden/dash_animatronic/start.png'), ); - game.update(1); + game.update(animationDuration * 0.25); await tester.pump(); await expectLater( find.byGame(), matchesGoldenFile('golden/dash_animatronic/middle.png'), ); - game.update(4); + game.update(animationDuration * 0.75); await tester.pump(); await expectLater( find.byGame(), diff --git a/packages/pinball_components/test/src/components/flipper_test.dart b/packages/pinball_components/test/src/components/flipper_test.dart index f413fade..c34d0d1c 100644 --- a/packages/pinball_components/test/src/components/flipper_test.dart +++ b/packages/pinball_components/test/src/components/flipper_test.dart @@ -10,7 +10,11 @@ import '../../helpers/helpers.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); - final flameTester = FlameTester(TestGame.new); + final assets = [ + Assets.images.flipper.left.keyName, + Assets.images.flipper.right.keyName, + ]; + final flameTester = FlameTester(() => TestGame(assets)); group('Flipper', () { // TODO(alestiago): Consider testing always both left and right Flipper. @@ -18,6 +22,7 @@ void main() { flameTester.testGameWidget( 'renders correctly', setUp: (game, tester) async { + await game.images.loadAll(assets); final leftFlipper = Flipper( side: BoardSide.left, )..initialPosition = Vector2(-10, 0); @@ -27,6 +32,7 @@ void main() { await game.ensureAddAll([leftFlipper, rightFlipper]); game.camera.followVector2(Vector2.zero()); + await tester.pump(); }, verify: (game, tester) async { await expectLater( diff --git a/packages/pinball_components/test/src/components/golden/baseboard.png b/packages/pinball_components/test/src/components/golden/baseboard.png index df83fa4c..01141551 100644 Binary files a/packages/pinball_components/test/src/components/golden/baseboard.png and b/packages/pinball_components/test/src/components/golden/baseboard.png differ diff --git a/packages/pinball_components/test/src/components/golden/boundaries.png b/packages/pinball_components/test/src/components/golden/boundaries.png index 4ac8f5eb..ecb396c4 100644 Binary files a/packages/pinball_components/test/src/components/golden/boundaries.png and b/packages/pinball_components/test/src/components/golden/boundaries.png differ diff --git a/packages/pinball_components/test/src/components/golden/dash_animatronic/end.png b/packages/pinball_components/test/src/components/golden/dash_animatronic/end.png index 8c99f674..3e5e91f5 100644 Binary files a/packages/pinball_components/test/src/components/golden/dash_animatronic/end.png and b/packages/pinball_components/test/src/components/golden/dash_animatronic/end.png differ diff --git a/packages/pinball_components/test/src/components/golden/dash_animatronic/middle.png b/packages/pinball_components/test/src/components/golden/dash_animatronic/middle.png index b2bf16a3..9e79695a 100644 Binary files a/packages/pinball_components/test/src/components/golden/dash_animatronic/middle.png and b/packages/pinball_components/test/src/components/golden/dash_animatronic/middle.png differ diff --git a/packages/pinball_components/test/src/components/golden/dash_animatronic/start.png b/packages/pinball_components/test/src/components/golden/dash_animatronic/start.png index 8c99f674..3e5e91f5 100644 Binary files a/packages/pinball_components/test/src/components/golden/dash_animatronic/start.png and b/packages/pinball_components/test/src/components/golden/dash_animatronic/start.png differ diff --git a/packages/pinball_components/test/src/components/golden/flipper.png b/packages/pinball_components/test/src/components/golden/flipper.png index 79b7ca5b..07fe81ed 100644 Binary files a/packages/pinball_components/test/src/components/golden/flipper.png and b/packages/pinball_components/test/src/components/golden/flipper.png differ diff --git a/packages/pinball_components/test/src/components/golden/slingshots.png b/packages/pinball_components/test/src/components/golden/slingshots.png index 2cbb1f5c..d0b01f76 100644 Binary files a/packages/pinball_components/test/src/components/golden/slingshots.png and b/packages/pinball_components/test/src/components/golden/slingshots.png differ diff --git a/packages/pinball_components/test/src/components/slingshot_test.dart b/packages/pinball_components/test/src/components/slingshot_test.dart index a5535750..69296f78 100644 --- a/packages/pinball_components/test/src/components/slingshot_test.dart +++ b/packages/pinball_components/test/src/components/slingshot_test.dart @@ -10,17 +10,22 @@ import '../../helpers/helpers.dart'; void main() { group('Slingshot', () { - final flameTester = FlameTester(TestGame.new); + final assets = [ + Assets.images.slingshot.upper.keyName, + Assets.images.slingshot.lower.keyName, + ]; + final flameTester = FlameTester(() => TestGame(assets)); const length = 2.0; const angle = 0.0; - final spritePath = Assets.images.slingshot.upper.keyName; flameTester.testGameWidget( 'renders correctly', setUp: (game, tester) async { + await game.images.loadAll(assets); await game.addFromBlueprint(Slingshots()); game.camera.followVector2(Vector2.zero()); await game.ready(); + await tester.pump(); }, verify: (game, tester) async { await expectLater( @@ -36,7 +41,7 @@ void main() { final slingshot = Slingshot( length: length, angle: angle, - spritePath: spritePath, + spritePath: assets.first, ); await game.ensureAdd(slingshot); @@ -50,7 +55,7 @@ void main() { final slingshot = Slingshot( length: length, angle: angle, - spritePath: spritePath, + spritePath: assets.first, ); await game.ensureAdd(slingshot); @@ -64,7 +69,7 @@ void main() { final slingshot = Slingshot( length: length, angle: angle, - spritePath: spritePath, + spritePath: assets.first, ); await game.ensureAdd(slingshot); @@ -82,7 +87,7 @@ void main() { final slingshot = Slingshot( length: length, angle: angle, - spritePath: spritePath, + spritePath: assets.first, ); await game.ensureAdd(slingshot); diff --git a/test/game/components/board_test.dart b/test/game/components/board_test.dart index 3ecbe6e7..bc1c5c39 100644 --- a/test/game/components/board_test.dart +++ b/test/game/components/board_test.dart @@ -16,10 +16,15 @@ void main() { Assets.images.dash.bumper.a.inactive.keyName, Assets.images.dash.bumper.b.active.keyName, Assets.images.dash.bumper.b.inactive.keyName, + Assets.images.dash.animatronic.keyName, Assets.images.signpost.inactive.keyName, Assets.images.signpost.active1.keyName, Assets.images.signpost.active2.keyName, Assets.images.signpost.active3.keyName, + Assets.images.baseboard.left.keyName, + Assets.images.baseboard.right.keyName, + Assets.images.flipper.left.keyName, + Assets.images.flipper.right.keyName, ]; final flameTester = FlameTester(() => EmptyPinballTestGame(assets)); diff --git a/test/game/components/controlled_flipper_test.dart b/test/game/components/controlled_flipper_test.dart index 01982129..1b2a7e43 100644 --- a/test/game/components/controlled_flipper_test.dart +++ b/test/game/components/controlled_flipper_test.dart @@ -11,7 +11,11 @@ import '../../helpers/helpers.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); - final flameTester = FlameTester(EmptyPinballTestGame.new); + final assets = [ + Assets.images.flipper.left.keyName, + Assets.images.flipper.right.keyName, + ]; + final flameTester = FlameTester(() => EmptyPinballTestGame(assets)); final flameBlocTester = FlameBlocTester( gameBuilder: EmptyPinballTestGame.new, @@ -25,6 +29,7 @@ void main() { whenListen(bloc, Stream.value(state), initialState: state); return bloc; }, + assets: assets, ); group('FlipperController', () { diff --git a/test/game/components/flutter_forest_test.dart b/test/game/components/flutter_forest_test.dart index 73259afd..388410d5 100644 --- a/test/game/components/flutter_forest_test.dart +++ b/test/game/components/flutter_forest_test.dart @@ -19,6 +19,7 @@ void main() { Assets.images.dash.bumper.a.inactive.keyName, Assets.images.dash.bumper.b.active.keyName, Assets.images.dash.bumper.b.inactive.keyName, + Assets.images.dash.animatronic.keyName, Assets.images.signpost.inactive.keyName, Assets.images.signpost.active1.keyName, Assets.images.signpost.active2.keyName, diff --git a/test/game/pinball_game_test.dart b/test/game/pinball_game_test.dart index 1775a42f..4c3dbbfb 100644 --- a/test/game/pinball_game_test.dart +++ b/test/game/pinball_game_test.dart @@ -19,6 +19,7 @@ void main() { Assets.images.dash.bumper.a.inactive.keyName, Assets.images.dash.bumper.b.active.keyName, Assets.images.dash.bumper.b.inactive.keyName, + Assets.images.dash.animatronic.keyName, Assets.images.signpost.inactive.keyName, Assets.images.signpost.active1.keyName, Assets.images.signpost.active2.keyName, @@ -43,6 +44,14 @@ void main() { Assets.images.spaceship.ramp.arrow.active3.keyName, Assets.images.spaceship.ramp.arrow.active4.keyName, Assets.images.spaceship.ramp.arrow.active5.keyName, + Assets.images.baseboard.left.keyName, + Assets.images.baseboard.right.keyName, + Assets.images.flipper.left.keyName, + Assets.images.flipper.right.keyName, + Assets.images.boundary.outer.keyName, + Assets.images.boundary.bottom.keyName, + Assets.images.slingshot.upper.keyName, + Assets.images.slingshot.lower.keyName, ]; final flameTester = FlameTester(() => PinballTestGame(assets)); final debugModeFlameTester = FlameTester(() => DebugPinballTestGame(assets)); @@ -52,17 +61,6 @@ void main() { // [BallScorePointsCallback] once the following issue is resolved: // https://github.com/flame-engine/flame/issues/1416 group('components', () { - flameTester.test( - 'has three Walls', - (game) async { - await game.ready(); - final walls = game.children.where( - (component) => component is Wall && component is! BottomWall, - ); - expect(walls.length, 3); - }, - ); - flameTester.test( 'has only one BottomWall', (game) async {