more pr suggestions

pull/170/head
Erick Zanardo 4 years ago
parent b865d05fd4
commit c1d2b41987

@ -7,7 +7,7 @@ import 'package:pinball/game/game.dart';
import 'package:pinball_components/pinball_components.dart';
/// {@template score_effect_controller}
/// A [ComponentController] responsible for adding [ScoreTextEffect]s
/// A [ComponentController] responsible for adding [ScoreText]s
/// on the game screen when the user earns points.
/// {@endtemplate}
class ScoreEffectController extends ComponentController<PinballGame>
@ -32,7 +32,7 @@ class ScoreEffectController extends ComponentController<PinballGame>
final newScore = state.score - _lastScore;
component.add(
ScoreTextEffect(
ScoreText(
text: newScore.toString(),
position: Vector2(
_noise(),

@ -0,0 +1,16 @@
import 'package:pinball_components/gen/fonts.gen.dart';
String _prefixFont(String font) {
return 'packages/pinball_components/$font';
}
/// Class with the fonts available on the pinball game
class PinballFonts {
PinballFonts._();
/// Mono variation of the Pixeloid font
static final String pixeloidMono = _prefixFont(FontFamily.pixeloidMono);
/// Sans variation of the Pixeloid font
static final String pixeloidSans = _prefixFont(FontFamily.pixeloidMono);
}

@ -1,4 +1,5 @@
library pinball_components;
export 'gen/assets.gen.dart';
export 'gen/pinball_fonts.dart';
export 'src/pinball_components.dart';

@ -17,7 +17,7 @@ export 'kicker.dart';
export 'launch_ramp.dart';
export 'layer.dart';
export 'ramp_opening.dart';
export 'score_text_effect.dart';
export 'score_text.dart';
export 'shapes/shapes.dart';
export 'slingshot.dart';
export 'spaceship.dart';

@ -3,16 +3,16 @@ import 'dart:async';
import 'package:flame/components.dart';
import 'package:flame/effects.dart';
import 'package:flutter/material.dart';
import 'package:pinball_components/gen/fonts.gen.dart';
import 'package:pinball_components/pinball_components.dart';
/// {@template score_text_effect}
/// {@template score_text}
/// A [TextComponent] that spawns at a given [position]
/// bundles a simples translate effect and is removed
/// once its animation is completed
/// {@endtemplate}
class ScoreTextEffect extends TextComponent {
/// {@macro score_text_effect}
ScoreTextEffect({
class ScoreText extends TextComponent {
/// {@macro score_text}
ScoreText({
required String text,
required Vector2 position,
this.color = Colors.black,
@ -32,7 +32,7 @@ class ScoreTextEffect extends TextComponent {
Future<void> onLoad() async {
textRenderer = TextPaint(
style: TextStyle(
fontFamily: 'packages/pinball_components/${FontFamily.pixeloidMono}',
fontFamily: PinballFonts.pixeloidMono,
color: color,
fontSize: 4,
),

@ -25,6 +25,6 @@ void main() {
addSparkyBumperStories(dashbook);
addZoomStories(dashbook);
addBoundariesStories(dashbook);
addScoreTextEffectStories(dashbook);
addScoreTextStories(dashbook);
runApp(dashbook);
}

@ -5,11 +5,11 @@ import 'package:flutter/material.dart';
import 'package:pinball_components/pinball_components.dart';
import 'package:sandbox/common/common.dart';
class ScoreTextEffectBasicGame extends BasicGame with TapDetector {
class ScoreTextBasicGame extends BasicGame with TapDetector {
static const info = '''
Simple game to show how score text effects works,
Simple game to show how score text works,
Tap anywhere on the screen to spawn an effect on the given location.
- Tap anywhere on the screen to spawn an text on the given location.
''';
final random = Random();
@ -22,7 +22,7 @@ class ScoreTextEffectBasicGame extends BasicGame with TapDetector {
@override
void onTapUp(TapUpInfo info) {
add(
ScoreTextEffect(
ScoreText(
text: random.nextInt(100000).toString(),
color: Colors.white,
position: info.eventPosition.game..multiply(Vector2(1, -1)),

@ -0,0 +1,15 @@
import 'package:dashbook/dashbook.dart';
import 'package:flame/game.dart';
import 'package:sandbox/common/common.dart';
import 'package:sandbox/stories/score_text/basic.dart';
void addScoreTextStories(Dashbook dashbook) {
dashbook.storiesOf('ScoreText').add(
'Basic',
(context) => GameWidget(
game: ScoreTextBasicGame(),
),
codeLink: buildSourceLink('score_text/basic.dart'),
info: ScoreTextBasicGame.info,
);
}

@ -1,15 +0,0 @@
import 'package:dashbook/dashbook.dart';
import 'package:flame/game.dart';
import 'package:sandbox/common/common.dart';
import 'package:sandbox/stories/score_text_effect/basic.dart';
void addScoreTextEffectStories(Dashbook dashbook) {
dashbook.storiesOf('ScoreTextEffect').add(
'Basic',
(context) => GameWidget(
game: ScoreTextEffectBasicGame(),
),
codeLink: buildSourceLink('score_text_effect/basic.dart'),
info: ScoreTextEffectBasicGame.info,
);
}

@ -6,7 +6,7 @@ export 'effects/stories.dart';
export 'flipper/stories.dart';
export 'flutter_forest/stories.dart';
export 'layer/stories.dart';
export 'score_text_effect/stories.dart';
export 'score_text/stories.dart';
export 'slingshot/stories.dart';
export 'spaceship/stories.dart';
export 'sparky_bumper/stories.dart';

@ -10,7 +10,7 @@ import 'package:pinball_components/pinball_components.dart';
import '../../helpers/helpers.dart';
void main() {
group('ScoreTextEffect', () {
group('ScoreText', () {
final flameTester = FlameTester(TestGame.new);
flameTester.testGameWidget(
@ -18,7 +18,7 @@ void main() {
setUp: (game, tester) async {
game.camera.followVector2(Vector2.zero());
await game.ensureAdd(
ScoreTextEffect(
ScoreText(
text: '123',
position: Vector2.zero(),
color: Colors.white,
@ -36,7 +36,7 @@ void main() {
setUp: (game, tester) async {
game.camera.followVector2(Vector2.zero());
await game.ensureAdd(
ScoreTextEffect(
ScoreText(
text: '123',
position: Vector2.zero(),
color: Colors.white,
@ -57,7 +57,7 @@ void main() {
setUp: (game, tester) async {
game.camera.followVector2(Vector2.zero());
await game.ensureAdd(
ScoreTextEffect(
ScoreText(
text: '123',
position: Vector2.zero(),
color: Colors.white,

@ -64,7 +64,7 @@ void main() {
group('onNewState', () {
test(
'adds a ScoreTextEffect with the correct score for the '
'adds a ScoreText with the correct score for the '
'first time',
() {
const state = GameState(
@ -77,8 +77,8 @@ void main() {
controller.onNewState(state);
final effect = verify(() => game.add(captureAny())).captured.first
as ScoreTextEffect;
final effect =
verify(() => game.add(captureAny())).captured.first as ScoreText;
expect(effect.text, equals('10'));
},
@ -105,8 +105,8 @@ void main() {
),
);
final effect = verify(() => game.add(captureAny())).captured.last
as ScoreTextEffect;
final effect =
verify(() => game.add(captureAny())).captured.last as ScoreText;
expect(effect.text, equals('4'));
});

Loading…
Cancel
Save