diff --git a/lib/animation.dart b/lib/animation.dart index 82e224c5b..27d72644e 100644 --- a/lib/animation.dart +++ b/lib/animation.dart @@ -34,4 +34,8 @@ class Animation { void update(double t) { this.lifeTime += t; } + + bool loaded() { + return !sprites.any((sprite) => !sprite.loaded()); + } } diff --git a/lib/components/animation_component.dart b/lib/components/animation_component.dart index 797353143..9b46703bd 100644 --- a/lib/components/animation_component.dart +++ b/lib/components/animation_component.dart @@ -33,8 +33,10 @@ class AnimationComponent extends PositionComponent { @override void render(Canvas canvas) { - prepareCanvas(canvas); - animation.getSprite().render(canvas, width, height); + if (animation.loaded() && x != null && y != null) { + prepareCanvas(canvas); + animation.getSprite().render(canvas, width, height); + } } @override diff --git a/lib/components/component.dart b/lib/components/component.dart index 35d9a392c..0efdc917a 100644 --- a/lib/components/component.dart +++ b/lib/components/component.dart @@ -73,7 +73,7 @@ class SpriteComponent extends PositionComponent { @override render(Canvas canvas) { - if (sprite.loaded()) { + if (sprite.loaded() && x != null && y != null) { prepareCanvas(canvas); sprite.render(canvas, width, height); }