Adding destoryOnFinish flag to AnimationComponent

This commit is contained in:
Erick Zanardo
2019-06-28 18:11:38 -03:00
parent 006a20f99f
commit b50efcb3a5
2 changed files with 27 additions and 5 deletions

View File

@ -1,22 +1,38 @@
import 'package:flutter/gestures.dart';
import 'package:flame/flame.dart';
import 'package:flame/game.dart';
import 'package:flame/animation.dart' as flame_animation;
import 'package:flame/components/animation_component.dart';
import 'package:flutter/material.dart';
void main() => runApp(MyGame().widget);
void main() {
final game = MyGame();
runApp(game.widget);
Flame.util.addGestureRecognizer(TapGestureRecognizer()
..onTapDown = (TapDownDetails evt) {
game.addAnimation();
});
}
class MyGame extends BaseGame {
final animation = flame_animation.Animation.sequenced('chopper.png', 4,
textureWidth: 48, textureHeight: 48, stepTime: 0.15);
MyGame() {
_start();
}
void addAnimation() {
final animationComponent = AnimationComponent(100, 100, animation, destroyOnFinish: true);
animationComponent.x = size.width / 2 - 50;
animationComponent.y = 200;
add(animationComponent);
}
void _start() async {
final Size size = await Flame.util.initialDimensions();
final animation = flame_animation.Animation.sequenced('chopper.png', 4,
textureWidth: 48, textureHeight: 48, stepTime: 0.15);
final animationComponent = AnimationComponent(100, 100, animation);
animationComponent.x = size.width / 2 - 100;
animationComponent.y = 100;

View File

@ -5,8 +5,9 @@ import 'package:flame/animation.dart';
class AnimationComponent extends PositionComponent {
Animation animation;
bool destroyOnFinish;
AnimationComponent(double width, double height, this.animation) {
AnimationComponent(double width, double height, this.animation, { this.destroyOnFinish = false }) {
this.width = width;
this.height = height;
}
@ -22,6 +23,8 @@ class AnimationComponent extends PositionComponent {
double textureY = 0.0,
double textureWidth,
double textureHeight,
this.destroyOnFinish = false,
}) {
this.width = width;
this.height = height;
@ -38,6 +41,9 @@ class AnimationComponent extends PositionComponent {
@override
bool loaded() => animation.loaded();
@override
bool destroy() => destroyOnFinish && animation.isLastFrame;
@override
void render(Canvas canvas) {
prepareCanvas(canvas);