mirror of
				https://github.com/flame-engine/flame.git
				synced 2025-11-04 13:08:09 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			794 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			794 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'dart:ui';
 | 
						|
 | 
						|
import 'package:flutter/painting.dart';
 | 
						|
 | 
						|
import 'component.dart';
 | 
						|
import '../text_config.dart';
 | 
						|
 | 
						|
class TextComponent extends PositionComponent {
 | 
						|
  String _text;
 | 
						|
  TextConfig _config;
 | 
						|
 | 
						|
  TextPainter _tp;
 | 
						|
 | 
						|
  String get text => _text;
 | 
						|
 | 
						|
  set text(String text) {
 | 
						|
    if (_text != text) {
 | 
						|
      _text = text;
 | 
						|
      _updateBox();
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  TextConfig get config => _config;
 | 
						|
 | 
						|
  set config(TextConfig config) {
 | 
						|
    _config = config;
 | 
						|
    _updateBox();
 | 
						|
  }
 | 
						|
 | 
						|
  TextComponent(this._text, {TextConfig config }) {
 | 
						|
    _config = config ?? TextConfig();
 | 
						|
    _updateBox();
 | 
						|
  }
 | 
						|
 | 
						|
  void _updateBox() {
 | 
						|
    _tp = config.toTextPainter(_text);
 | 
						|
    width = _tp.width;
 | 
						|
    height = _tp.height;
 | 
						|
  }
 | 
						|
 | 
						|
  @override
 | 
						|
  void render(Canvas c) {
 | 
						|
    prepareCanvas(c);
 | 
						|
    _tp.paint(c, Offset.zero);
 | 
						|
  }
 | 
						|
}
 |