flame_flare 0.1.0 copy "flame_flare: ^0.1.0" to clipboard
flame_flare: ^0.1.0 copied to clipboard

discontinuedreplaced by: flame_rive
outdated

This packages allows you to use flare animations into a flame game.

example/lib/main.dart

import 'dart:ui';

import 'package:flame/components/component.dart';
import 'package:flame/components/mixins/resizable.dart';
import 'package:flame/gestures.dart';
import 'package:flame/game.dart';
import 'package:flame_flare/flame_flare.dart';
import 'package:flutter/material.dart';
import 'package:flare_flutter/flare_controls.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  final game = MyGame();
  runApp(game.widget);
}

class MyGame extends BaseGame with TapDetector, DoubleTapDetector {
  final paint = Paint()..color = const Color(0xFFE5E5E5E5);
  final List<String> _animations = ['Wave', 'Dance'];
  int _currentAnimation = 0;
  MinionComponent minionComponent;
  MinionController minionController;

  bool loaded = false;

  MyGame() {
    minionController = MinionController();
    minionComponent = MinionComponent(minionController);
    minionComponent.x = 0;
    minionComponent.y = 0;
    add(BGComponent());
    add(minionComponent);
    minionController.playStand();
  }

  @override
  bool debugMode() => true;

  @override
  void onTap() {
    minionController.playJump();
  }

  @override
  void onDoubleTap() {
    cycleAnimation();
  }

  void cycleAnimation() {
    if (_currentAnimation == 1) {
      _currentAnimation = 0;
    } else {
      _currentAnimation++;
    }
    minionController.play(_animations[_currentAnimation]);
  }

  @override
  void render(Canvas canvas) {
    super.render(canvas);
  }
}

class MinionController extends FlareControls {
  void playStand() {
    play("Stand");
  }

  void playDance() {
    play("Dance");
  }

  void playJump() {
    play("Jump");
  }

  void playWave() {
    play("Wave");
  }
}

class MinionComponent extends FlareActorComponent with Resizable {
  MinionController minionController;

  MinionComponent(this.minionController)
      : super(
          FlareActorAnimation(
            'assets/Bob_Minion.flr',
            controller: minionController,
            fit: BoxFit.scaleDown,
            alignment: Alignment.center,
          ),
          width: 300,
          height: 300,
        );

  @override
  void render(Canvas c) {
    final rect = Rect.fromLTWH(x, y, width, height);
    final paint = Paint()..color = const Color(0xFFfafbfc);
    c.drawRect(rect, paint);
    super.render(c);
  }

  @override
  void resize(Size size) {
    super.resize(size);

    x = size.width / 2 - width / 2;
    y = size.height / 2 - height / 2;
  }
}

class BGComponent extends Component with Resizable {
  @override
  void render(Canvas c) {
    final rect = Rect.fromLTWH(0, 0, size.width, size.height);
    final paint = Paint()..color = const Color(0xFFFFFFFF);
    c.drawRect(rect, paint);
  }

  @override
  void update(double t) {}
}
25
likes
40
pub points
36%
popularity

Publisher

verified publisherflame-engine.org

This packages allows you to use flare animations into a flame game.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

flame, flare_dart, flare_flutter, flutter, memoize

More

Packages that depend on flame_flare