mirror of
				https://github.com/flame-engine/flame.git
				synced 2025-10-31 17:06:50 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:flame/game.dart';
 | |
| import 'package:flame_oxygen/flame_oxygen.dart';
 | |
| import 'package:flutter/material.dart';
 | |
| 
 | |
| class DebugSystem extends BaseSystem {
 | |
|   final debugPaint = Paint()
 | |
|     ..color = Colors.green
 | |
|     ..style = PaintingStyle.stroke;
 | |
| 
 | |
|   final textPainter = TextPaint(
 | |
|     style: const TextStyle(color: Colors.green, fontSize: 10),
 | |
|   );
 | |
| 
 | |
|   final statusPainter = TextPaint(
 | |
|     style: const TextStyle(color: Colors.green, fontSize: 16),
 | |
|   );
 | |
| 
 | |
|   @override
 | |
|   List<Filter<Component>> get filters => [];
 | |
| 
 | |
|   @override
 | |
|   void render(Canvas canvas) {
 | |
|     super.render(canvas);
 | |
|     statusPainter.render(
 | |
|       canvas,
 | |
|       [
 | |
|         'Entities: ${world!.entities.length}',
 | |
|       ].join('\n'),
 | |
|       Vector2.zero(),
 | |
|     );
 | |
|   }
 | |
| 
 | |
|   @override
 | |
|   void renderEntity(Canvas canvas, Entity entity) {
 | |
|     final size = entity.get<SizeComponent>()!.size;
 | |
| 
 | |
|     canvas.drawRect(Vector2.zero() & size, debugPaint);
 | |
| 
 | |
|     textPainter.render(
 | |
|       canvas,
 | |
|       [
 | |
|         'position: ${entity.get<PositionComponent>()!.position}',
 | |
|         'size: $size',
 | |
|         'angle: ${entity.get<AngleComponent>()?.radians ?? 0}',
 | |
|         'anchor: ${entity.get<AnchorComponent>()?.anchor ?? Anchor.topLeft}',
 | |
|       ].join('\n'),
 | |
|       Vector2(size.x + 2, 0),
 | |
|     );
 | |
|     textPainter.render(
 | |
|       canvas,
 | |
|       entity.name ?? '',
 | |
|       Vector2(size.x / 2, size.y + 2),
 | |
|       anchor: Anchor.topCenter,
 | |
|     );
 | |
|   }
 | |
| }
 | 
