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> 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()!.size; canvas.drawRect(Vector2.zero() & size, debugPaint); textPainter.render( canvas, [ 'position: ${entity.get()!.position}', 'size: $size', 'angle: ${entity.get()?.radians ?? 0}', 'anchor: ${entity.get()?.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, ); } }