diff --git a/examples/lib/stories/utils/particles.dart b/examples/lib/stories/utils/particles.dart index 3c3abfbce..d91d2d53c 100644 --- a/examples/lib/stories/utils/particles.dart +++ b/examples/lib/stories/utils/particles.dart @@ -561,6 +561,7 @@ class TrafficLightComponent extends Component { @override void render(Canvas c) { + super.render(c); c.drawRect(rect, Paint()..color = currentColor); } diff --git a/examples/lib/stories/utils/timer_component.dart b/examples/lib/stories/utils/timer_component.dart index 3ea424d54..d9b3289c7 100644 --- a/examples/lib/stories/utils/timer_component.dart +++ b/examples/lib/stories/utils/timer_component.dart @@ -14,6 +14,7 @@ class RenderedTimeComponent extends TimerComponent { @override void render(Canvas canvas) { + super.render(canvas); textPaint.render( canvas, 'Elapsed time: ${timer.current}', diff --git a/packages/flame/CHANGELOG.md b/packages/flame/CHANGELOG.md index 2bf7d2587..742777e31 100644 --- a/packages/flame/CHANGELOG.md +++ b/packages/flame/CHANGELOG.md @@ -4,6 +4,7 @@ - `changePriority` no longer breaks game loop iteration - Move component mixin checks to their own files - Fix exception when game was rebuilt + - Add `@mustCallSuper` on `Component.render` ## [1.0.0-releasecandidate.15] - Fix issue with `Draggable`s not being removed from `draggables` list diff --git a/packages/flame/lib/src/components/component.dart b/packages/flame/lib/src/components/component.dart index 9bfb7ded2..d8f1e6be0 100644 --- a/packages/flame/lib/src/components/component.dart +++ b/packages/flame/lib/src/components/component.dart @@ -131,6 +131,7 @@ class Component with Loadable { children.forEach((c) => c.update(dt)); } + @mustCallSuper void render(Canvas canvas) { preRender(canvas); } diff --git a/packages/flame/lib/src/game/flame_game.dart b/packages/flame/lib/src/game/flame_game.dart index ccbbf1412..1671d8d2c 100644 --- a/packages/flame/lib/src/game/flame_game.dart +++ b/packages/flame/lib/src/game/flame_game.dart @@ -64,6 +64,7 @@ class FlameGame extends Component with Game { @override @mustCallSuper void render(Canvas canvas) { + super.render(canvas); _cameraWrapper.render(canvas); } diff --git a/packages/flame/lib/src/timer.dart b/packages/flame/lib/src/timer.dart index b9d8c2e52..6880a100a 100644 --- a/packages/flame/lib/src/timer.dart +++ b/packages/flame/lib/src/timer.dart @@ -78,9 +78,6 @@ class TimerComponent extends Component { timer.update(dt); } - @override - void render(Canvas canvas) {} - @override bool get shouldRemove => timer.finished; } diff --git a/packages/flame_bloc/example/lib/src/game/components/enemy_creator.dart b/packages/flame_bloc/example/lib/src/game/components/enemy_creator.dart index ecc876748..fcf74ae06 100644 --- a/packages/flame_bloc/example/lib/src/game/components/enemy_creator.dart +++ b/packages/flame_bloc/example/lib/src/game/components/enemy_creator.dart @@ -1,5 +1,4 @@ import 'dart:math'; -import 'dart:ui'; import 'package:flame/components.dart'; import 'package:flame/timer.dart'; @@ -29,7 +28,4 @@ class EnemyCreator extends Component with HasGameRef { super.update(dt); enemyCreator.update(dt); } - - @override - void render(Canvas canvas) {} } diff --git a/packages/flame_tiled/lib/src/tiled_component.dart b/packages/flame_tiled/lib/src/tiled_component.dart index 1d2aa0145..c6f77011f 100644 --- a/packages/flame_tiled/lib/src/tiled_component.dart +++ b/packages/flame_tiled/lib/src/tiled_component.dart @@ -15,6 +15,7 @@ class TiledComponent extends Component { @override void render(Canvas canvas) { + super.render(canvas); tileMap.render(canvas); }