flame_audiomodify 1.0.10 copy "flame_audiomodify: ^1.0.10" to clipboard
flame_audiomodify: ^1.0.10 copied to clipboard

Audio support for the Flame game engine. This containst all audio related code will live in the future, using the audioplayers package.

example/lib/main.dart

import 'package:flame_audiomodify/audio_pool.dart';
import 'package:flame_audiomodify/flame_audio.dart';
import 'package:flamemodify/components.dart';
import 'package:flamemodify/extensions.dart';
import 'package:flamemodify/game.dart';
import 'package:flamemodify/input.dart';
import 'package:flamemodify/palette.dart';
import 'package:flutter/widgets.dart' hide Animation;

void main() async {
  runApp(GameWidget(game: AudioGame()));
}

/// This example game showcases three possible use cases:
///
/// 1. Use the static FlameAudio class to easily fire a sfx using the default
/// configs for the button tap.
/// 2. Uses a custom AudioPool for extremely efficient audio loading and pooling
/// for tapping elsewhere.
/// 3. Uses the Bgm utility for background music.
class AudioGame extends FlameGame with TapDetector {
  static Paint black = BasicPalette.black.paint();
  static Paint gray = const PaletteEntry(Color(0xFFCCCCCC)).paint();
  static TextPaint text = TextPaint(
    style: TextStyle(color: BasicPalette.white.color),
  );

  late AudioPool pool;

  @override
  Future<void> onLoad() async {
    pool = await AudioPool.create('fire_2.mp3', minPlayers: 3, maxPlayers: 4);
    startBgmMusic();
  }

  Rect get button => Rect.fromLTWH(20, size.y - 300, size.x - 40, 200);

  void startBgmMusic() {
    FlameAudio.bgm.initialize();
    FlameAudio.bgm.play('music/bg_music.ogg');
  }

  void fireOne() {
    FlameAudio.audioCache.play('sfx/fire_1.mp3');
  }

  void fireTwo() {
    pool.start();
  }

  @override
  void render(Canvas canvas) {
    super.render(canvas);
    canvas.drawRect(size.toRect(), black);

    text.render(
      canvas,
      '(click anywhere for 1)',
      Vector2(size.x / 2, 200),
      anchor: Anchor.topCenter,
    );

    canvas.drawRect(button, gray);

    text.render(
      canvas,
      'click here for 2',
      Vector2(size.x / 2, size.y - 200),
      anchor: Anchor.bottomCenter,
    );
  }

  @override
  void onTapDown(TapDownInfo details) {
    if (button.containsPoint(details.eventPosition.game)) {
      fireTwo();
    } else {
      fireOne();
    }
  }
}
3
likes
135
points
47
downloads

Publisher

unverified uploader

Weekly Downloads

Audio support for the Flame game engine. This containst all audio related code will live in the future, using the audioplayers package.

Repository (GitLab)
View/report issues
Contributing

Documentation

API reference

License

MIT (license)

Dependencies

audioplayersmodify, flamemodify, flutter, synchronized

More

Packages that depend on flame_audiomodify