flame_rive 1.2.0 copy "flame_rive: ^1.2.0" to clipboard
flame_rive: ^1.2.0 copied to clipboard

outdated

Rive support for the Flame game engine. This uses the rive package and provides wrappers and components to be used inside Flame.

example/lib/main.dart

import 'package:flame/components.dart';
import 'package:flame/game.dart';
import 'package:flame/input.dart';
import 'package:flame_rive/flame_rive.dart';
import 'package:flutter/material.dart';
import 'package:rive/rive.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late final game = RiveExampleGame();

  @override
  Widget build(BuildContext context) {
    return GameWidget(
      game: game,
    );
  }
}

class RiveExampleGame extends FlameGame with HasTappables {
  @override
  Color backgroundColor() {
    return const Color(0xFFFFFFFF);
  }

  @override
  Future<void> onLoad() async {
    final skillsArtboard =
        await loadArtboard(RiveFile.asset('assets/skills.riv'));
    add(SkillsAnimationComponent(skillsArtboard));
  }
}

class SkillsAnimationComponent extends RiveComponent with Tappable {
  SkillsAnimationComponent(Artboard artboard)
      : super(
          artboard: artboard,
          size: Vector2.all(550),
        );

  SMIInput<double>? _levelInput;

  @override
  Future<void>? onLoad() {
    final controller = StateMachineController.fromArtboard(
      artboard,
      "Designer's Test",
    );
    if (controller != null) {
      artboard.addController(controller);
      _levelInput = controller.findInput<double>('Level');
      _levelInput?.value = 0;
    }
    return super.onLoad();
  }

  @override
  bool onTapDown(TapDownInfo info) {
    final levelInput = _levelInput;
    if (levelInput == null) {
      return false;
    }
    levelInput.value = (levelInput.value + 1) % 3;
    return true;
  }
}
31
likes
0
pub points
86%
popularity

Publisher

verified publisherflame-engine.org

Rive support for the Flame game engine. This uses the rive package and provides wrappers and components to be used inside Flame.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flame, flutter, rive

More

Packages that depend on flame_rive