refactor: suggestions

pull/209/head
Allison Ryan 3 years ago
parent 7cc5b05841
commit 9020df9df2

@ -1,6 +1,6 @@
import 'package:pinball_components/gen/fonts.gen.dart';
const String _fontPath = 'packages/pinball_components/';
const String _fontPath = 'packages/pinball_components';
/// Class with the fonts available on the pinball game
class PinballFonts {

@ -21,72 +21,22 @@ class BackboardGameOver extends PositionComponent with HasGameRef {
required int score,
required String characterIconPath,
BackboardOnSubmit? onSubmit,
}) : _score = score,
_characterIconPath = characterIconPath,
_onSubmit = onSubmit;
}) : _onSubmit = onSubmit,
super(
children: [
_BackboardSpriteComponent(),
_BackboardDisplaySpriteComponent(),
_ScoreTextComponent(score.formatScore()),
_CharacterIconSpriteComponent(characterIconPath),
],
);
final int _score;
final String _characterIconPath;
final BackboardOnSubmit? _onSubmit;
@override
Future<void> onLoad() async {
final backgroundSprite = await gameRef.loadSprite(
Assets.images.backboard.backboardGameOver.keyName,
);
unawaited(
add(
SpriteComponent(
sprite: backgroundSprite,
size: backgroundSprite.originalSize / 10,
anchor: Anchor.bottomCenter,
),
),
);
final displaySprite = await gameRef.loadSprite(
Assets.images.backboard.display.keyName,
);
unawaited(
add(
SpriteComponent(
sprite: displaySprite,
size: displaySprite.originalSize / 10,
anchor: Anchor.bottomCenter,
position: Vector2(0, -11.5),
),
),
);
unawaited(
add(
TextComponent(
text: _score.formatScore(),
position: Vector2(-34, -45),
anchor: Anchor.centerLeft,
textRenderer: Backboard.textPaint,
),
),
);
final characterIconSprite = await Sprite.load(
_characterIconPath,
images: Images(prefix: ''),
);
unawaited(
add(
SpriteComponent(
sprite: characterIconSprite,
size: characterIconSprite.originalSize / 10,
anchor: Anchor.center,
position: Vector2(18.4, -45),
),
),
);
for (var i = 0; i < 3; i++) {
unawaited(
add(
await add(
BackboardLetterPrompt(
position: Vector2(
24.3 + (4.5 * i),
@ -94,12 +44,10 @@ class BackboardGameOver extends PositionComponent with HasGameRef {
),
hasFocus: i == 0,
),
),
);
}
unawaited(
add(
await add(
KeyboardInputController(
keyUp: {
LogicalKeyboardKey.arrowLeft: () => _movePrompt(true),
@ -107,7 +55,6 @@ class BackboardGameOver extends PositionComponent with HasGameRef {
LogicalKeyboardKey.enter: _submit,
},
),
),
);
}
@ -135,3 +82,67 @@ class BackboardGameOver extends PositionComponent with HasGameRef {
return false;
}
}
class _BackboardSpriteComponent extends SpriteComponent with HasGameRef {
_BackboardSpriteComponent() : super(anchor: Anchor.bottomCenter);
@override
Future<void> onLoad() async {
await super.onLoad();
final sprite = await gameRef.loadSprite(
Assets.images.backboard.backboardGameOver.keyName,
);
this.sprite = sprite;
size = sprite.originalSize / 10;
}
}
class _BackboardDisplaySpriteComponent extends SpriteComponent with HasGameRef {
_BackboardDisplaySpriteComponent()
: super(
anchor: Anchor.bottomCenter,
position: Vector2(0, -11.5),
);
@override
Future<void> onLoad() async {
await super.onLoad();
final sprite = await gameRef.loadSprite(
Assets.images.backboard.display.keyName,
);
this.sprite = sprite;
size = sprite.originalSize / 10;
}
}
class _ScoreTextComponent extends TextComponent {
_ScoreTextComponent(String score)
: super(
text: score,
anchor: Anchor.centerLeft,
position: Vector2(-34, -45),
textRenderer: Backboard.textPaint,
);
}
class _CharacterIconSpriteComponent extends SpriteComponent {
_CharacterIconSpriteComponent(String characterIconPath)
: _characterIconPath = characterIconPath,
super(
anchor: Anchor.center,
position: Vector2(18.4, -45),
);
final String _characterIconPath;
@override
Future<void> onLoad() async {
await super.onLoad();
final sprite = await Sprite.load(
_characterIconPath,
images: Images(prefix: ''),
);
this.sprite = sprite;
size = sprite.originalSize / 10;
}
}

@ -1,6 +1,7 @@
import 'package:flame/components.dart';
import 'package:flutter/material.dart';
import 'package:pinball_components/pinball_components.dart';
import 'package:pinball_components/pinball_components.dart' hide Assets;
import 'package:pinball_theme/pinball_theme.dart';
import 'package:sandbox/common/common.dart';
class BackboardGameOverGame extends BasicKeyboardGame {
@ -16,12 +17,10 @@ class BackboardGameOverGame extends BasicKeyboardGame {
final String character;
final characterIconPaths = <String, String>{
'Dash': 'packages/pinball_theme/assets/images/dash/leaderboard_icon.png',
'Sparky':
'packages/pinball_theme/assets/images/sparky/leaderboard_icon.png',
'Android':
'packages/pinball_theme/assets/images/android/leaderboard_icon.png',
'Dino': 'packages/pinball_theme/assets/images/dino/leaderboard_icon.png',
'Dash': Assets.images.dash.leaderboardIcon.keyName,
'Sparky': Assets.images.sparky.leaderboardIcon.keyName,
'Android': Assets.images.android.leaderboardIcon.keyName,
'Dino': Assets.images.dino.leaderboardIcon.keyName,
};
@override

@ -1,8 +1,8 @@
import 'package:dashbook/dashbook.dart';
import 'package:flame/game.dart';
import 'package:sandbox/common/common.dart';
import 'package:sandbox/stories/backboard/game_over.dart';
import 'package:sandbox/stories/backboard/waiting.dart';
import 'package:sandbox/stories/backboard/backboard_game_over_game.dart';
import 'package:sandbox/stories/backboard/backboard_waiting_game.dart';
void addBackboardStories(Dashbook dashbook) {
final characters = ['Dash', 'Sparky', 'Android', 'Dino'];

@ -255,7 +255,7 @@ packages:
source: path
version: "1.0.0+1"
pinball_theme:
dependency: transitive
dependency: "direct main"
description:
path: "../../pinball_theme"
relative: true

@ -16,6 +16,8 @@ dependencies:
path: ../
pinball_flame:
path: ../../pinball_flame
pinball_theme:
path: ../../pinball_theme
dev_dependencies:
flutter_test:

@ -1,6 +1,5 @@
// ignore_for_file: prefer_const_constructors
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:pinball_theme/pinball_theme.dart';
@ -13,34 +12,5 @@ void main() {
test('supports value equality', () {
expect(AndroidTheme(), equals(AndroidTheme()));
});
test('ballColor is correct', () {
expect(AndroidTheme().ballColor, equals(Colors.green));
});
test('character asset is correct', () {
expect(
AndroidTheme().character,
equals(Assets.images.android.character),
);
});
test('background asset is correct', () {
expect(
AndroidTheme().background,
equals(Assets.images.android.background),
);
});
test('icon asset is correct', () {
expect(AndroidTheme().icon, equals(Assets.images.android.icon));
});
test('leaderboard icon asset is correct', () {
expect(
AndroidTheme().leaderboardIcon,
equals(Assets.images.android.leaderboardIcon),
);
});
});
}

@ -1,6 +1,5 @@
// ignore_for_file: prefer_const_constructors
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:pinball_theme/pinball_theme.dart';
@ -13,34 +12,5 @@ void main() {
test('supports value equality', () {
expect(DashTheme(), equals(DashTheme()));
});
test('ballColor is correct', () {
expect(DashTheme().ballColor, equals(Colors.blue));
});
test('character asset is correct', () {
expect(
DashTheme().character,
equals(Assets.images.dash.character),
);
});
test('background asset is correct', () {
expect(
DashTheme().background,
equals(Assets.images.dash.background),
);
});
test('icon asset is correct', () {
expect(DashTheme().icon, equals(Assets.images.dash.icon));
});
test('leaderboard icon asset is correct', () {
expect(
DashTheme().leaderboardIcon,
equals(Assets.images.dash.leaderboardIcon),
);
});
});
}

@ -1,6 +1,5 @@
// ignore_for_file: prefer_const_constructors
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:pinball_theme/pinball_theme.dart';
@ -13,34 +12,5 @@ void main() {
test('supports value equality', () {
expect(DinoTheme(), equals(DinoTheme()));
});
test('ballColor is correct', () {
expect(DinoTheme().ballColor, equals(Colors.grey));
});
test('character asset is correct', () {
expect(
DinoTheme().character,
equals(Assets.images.dino.character),
);
});
test('background asset is correct', () {
expect(
DinoTheme().background,
equals(Assets.images.dino.background),
);
});
test('icon asset is correct', () {
expect(DinoTheme().icon, equals(Assets.images.dino.icon));
});
test('leaderboard icon asset is correct', () {
expect(
DinoTheme().leaderboardIcon,
equals(Assets.images.dino.leaderboardIcon),
);
});
});
}

@ -1,6 +1,5 @@
// ignore_for_file: prefer_const_constructors
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:pinball_theme/pinball_theme.dart';
@ -13,34 +12,5 @@ void main() {
test('supports value equality', () {
expect(SparkyTheme(), equals(SparkyTheme()));
});
test('ballColor is correct', () {
expect(SparkyTheme().ballColor, equals(Colors.orange));
});
test('character asset is correct', () {
expect(
SparkyTheme().character,
equals(Assets.images.sparky.character),
);
});
test('background asset is correct', () {
expect(
SparkyTheme().background,
equals(Assets.images.sparky.background),
);
});
test('icon asset is correct', () {
expect(SparkyTheme().icon, equals(Assets.images.sparky.icon));
});
test('leaderboard icon asset is correct', () {
expect(
SparkyTheme().leaderboardIcon,
equals(Assets.images.sparky.leaderboardIcon),
);
});
});
}

Loading…
Cancel
Save