mirror of
				https://github.com/flame-engine/flame.git
				synced 2025-10-31 17:06:50 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:flame/components.dart';
 | |
| import 'package:flame/game.dart';
 | |
| import 'package:flame/text.dart';
 | |
| import 'package:flutter/painting.dart';
 | |
| 
 | |
| class RichTextExample extends FlameGame {
 | |
|   final TextAlign textAlign;
 | |
| 
 | |
|   RichTextExample({this.textAlign = TextAlign.left});
 | |
| 
 | |
|   static const String description =
 | |
|       'A non-interactive example of how to render rich text in Flame.';
 | |
| 
 | |
|   @override
 | |
|   Color backgroundColor() => const Color(0xFF888888);
 | |
| 
 | |
|   @override
 | |
|   Future<void> onLoad() async {
 | |
|     final style = DocumentStyle(
 | |
|       width: 400,
 | |
|       height: 200,
 | |
|       padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 14),
 | |
|       background: BackgroundStyle(
 | |
|         color: const Color(0xFF4E322E),
 | |
|         borderColor: const Color(0xFF000000),
 | |
|         borderWidth: 2.0,
 | |
|       ),
 | |
|       paragraph: BlockStyle(
 | |
|         padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
 | |
|         textAlign: textAlign,
 | |
|         background: BackgroundStyle(
 | |
|           color: const Color(0xFF004D40),
 | |
|           borderColor: const Color(0xFFAAAAAA),
 | |
|         ),
 | |
|       ),
 | |
|       header1: BlockStyle(
 | |
|         textAlign: textAlign,
 | |
|       ),
 | |
|     );
 | |
|     final document = DocumentRoot([
 | |
|       HeaderNode.simple('1984', level: 1),
 | |
|       ParagraphNode.simple(
 | |
|         'Anything could be true. The so-called laws of nature were nonsense.',
 | |
|       ),
 | |
|       ParagraphNode.simple(
 | |
|         'The law of gravity was nonsense. "If I wished," O\'Brien had said, '
 | |
|         '"I could float off this floor like a soap bubble." Winston worked it '
 | |
|         'out. "If he thinks he floats off the floor, and I simultaneously '
 | |
|         'think I can see him do it, then the thing happens."',
 | |
|       ),
 | |
|       ParagraphNode.group([
 | |
|         PlainTextNode(
 | |
|             'Suddenly, like a lump of submerged wreckage breaking the surface '
 | |
|             'of water, the thought burst into his mind: '),
 | |
|         ItalicTextNode.group([
 | |
|           PlainTextNode('"It doesn\'t really happen. We imagine it. It is '),
 | |
|           BoldTextNode.simple('hallucination'),
 | |
|           PlainTextNode('."'),
 | |
|         ]),
 | |
|       ]),
 | |
|       ParagraphNode.group([
 | |
|         PlainTextNode(
 | |
|           'He pushed the thought under instantly. The fallacy was obvious. It '
 | |
|           'presupposed that somewhere or other, outside oneself, there was a '
 | |
|           '"',
 | |
|         ),
 | |
|         CodeTextNode.simple('real'),
 | |
|         PlainTextNode(
 | |
|           '" world where "',
 | |
|         ),
 | |
|         CodeTextNode.simple('real'),
 | |
|         PlainTextNode(
 | |
|           '" things happened. But how could there be '
 | |
|           'such a world? What knowledge have we of anything, save through our '
 | |
|           'own minds? All happenings are in the mind. Whatever happens in all '
 | |
|           'minds, truly happens.',
 | |
|         ),
 | |
|       ]),
 | |
|     ]);
 | |
| 
 | |
|     add(
 | |
|       TextElementComponent.fromDocument(
 | |
|         document: document,
 | |
|         style: style,
 | |
|         position: Vector2(100, 50),
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| }
 | 
