Files
flame/packages/flame_test/test/debug_text_formatter_test.dart
Pasha Stetsenko 426827d19e feat: Added DebugTextFormatter (#1921)
DebugTextFormatter is a text formatter for use in tests, correspondingly, it is defined in flame_test.
    Compared to DebugTextPainterTextElement it has several advantages:
        Does not depend on a TextPainter, and thus it is truly platform-independent;
        Supports font-weight, font-style, and color.
    DebugTextPainterTextElement and the debugMode in TextPainterTextFormatter are deprecated.
2022-09-19 21:51:53 +02:00

57 lines
1.8 KiB
Dart

import 'dart:ui';
import 'package:flame/components.dart';
import 'package:flame/text.dart';
import 'package:flame_test/flame_test.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
group('DebugTextFormatter', () {
testGolden(
'Render debug text',
(game) async {
game.add(
TextElementsComponent([
DebugTextFormatter().format('one two three')..translate(5, 5),
DebugTextFormatter().format(' x ')..translate(5, 25),
DebugTextFormatter().format(' ')..translate(5, 45),
DebugTextFormatter().format('')..translate(25, 45),
DebugTextFormatter(color: const Color(0xFFFF88AA))
.format('Flame Engine')
..translate(5, 65),
DebugTextFormatter(fontWeight: FontWeight.bold).format('Blue Fire')
..translate(5, 85),
DebugTextFormatter(fontWeight: FontWeight.w900).format('Blue Fire')
..translate(5, 105),
DebugTextFormatter(fontStyle: FontStyle.italic).format('Blue Fire')
..translate(5, 125),
DebugTextFormatter(
fontWeight: FontWeight.bold,
fontStyle: FontStyle.italic,
color: const Color(0xFF0088FF),
).format('a b c d e f g h i')
..translate(5, 145),
DebugTextFormatter(fontSize: 10).format('www.flame-engine.org')
..translate(5, 165),
]),
);
},
goldenFile: 'golden_debug_text.png',
size: Vector2(300, 200),
);
});
}
class TextElementsComponent extends PositionComponent {
TextElementsComponent(this.elements);
final List<TextElement> elements;
@override
void render(Canvas canvas) {
for (final element in elements) {
element.render(canvas);
}
}
}