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'; import 'package:pinball_components/pinball_components.dart';
/// {@template score_effect_controller} /// {@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. /// on the game screen when the user earns points.
/// {@endtemplate} /// {@endtemplate}
class ScoreEffectController extends ComponentController<PinballGame> class ScoreEffectController extends ComponentController<PinballGame>
@ -32,7 +32,7 @@ class ScoreEffectController extends ComponentController<PinballGame>
final newScore = state.score - _lastScore; final newScore = state.score - _lastScore;
component.add( component.add(
ScoreTextEffect( ScoreText(
text: newScore.toString(), text: newScore.toString(),
position: Vector2( position: Vector2(
_noise(), _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; library pinball_components;
export 'gen/assets.gen.dart'; export 'gen/assets.gen.dart';
export 'gen/pinball_fonts.dart';
export 'src/pinball_components.dart'; export 'src/pinball_components.dart';

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

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

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

@ -5,11 +5,11 @@ import 'package:flutter/material.dart';
import 'package:pinball_components/pinball_components.dart'; import 'package:pinball_components/pinball_components.dart';
import 'package:sandbox/common/common.dart'; import 'package:sandbox/common/common.dart';
class ScoreTextEffectBasicGame extends BasicGame with TapDetector { class ScoreTextBasicGame extends BasicGame with TapDetector {
static const info = ''' 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(); final random = Random();
@ -22,7 +22,7 @@ class ScoreTextEffectBasicGame extends BasicGame with TapDetector {
@override @override
void onTapUp(TapUpInfo info) { void onTapUp(TapUpInfo info) {
add( add(
ScoreTextEffect( ScoreText(
text: random.nextInt(100000).toString(), text: random.nextInt(100000).toString(),
color: Colors.white, color: Colors.white,
position: info.eventPosition.game..multiply(Vector2(1, -1)), 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 'flipper/stories.dart';
export 'flutter_forest/stories.dart'; export 'flutter_forest/stories.dart';
export 'layer/stories.dart'; export 'layer/stories.dart';
export 'score_text_effect/stories.dart'; export 'score_text/stories.dart';
export 'slingshot/stories.dart'; export 'slingshot/stories.dart';
export 'spaceship/stories.dart'; export 'spaceship/stories.dart';
export 'sparky_bumper/stories.dart'; export 'sparky_bumper/stories.dart';

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

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

Loading…
Cancel
Save