サウンド

2023-05-04

flame_audio

音を鳴らすにはflame_audioを使います。 これはaudioplayersをラップしたものです。

公式ドキュメント https://docs.flame-engine.org/latest/bridge_packages/flame_audio/audio.html
APIリファレンス https://pub.dev/documentation/flame_audio/latest/flame_audio/FlameAudio-class.html

音を鳴らす

flame_audioを導入します。

  flame_audio: ^2.1.7

assets/audiohit.wavを入れ、pubspec.yamlでも指定します。

# <sprite>
  assets:
    - assets/images/
# </sprite>
    - assets/audio/

ボタンを押したときにFlameAudio.playで音を鳴らします。

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

class SoundGame extends FlameGame {
  @override
  Future<void> onLoad() async {
    super.onLoad();

    await add(
      ButtonComponent(
        position: Vector2(size.x * 0.5, size.y * 0.5),
        onPressed: () => FlameAudio.play('hit.wav'),
        button: TextComponent(
          text: 'Play',
          textRenderer: TextPaint(
            style: const TextStyle(
              fontSize: 32,
              color: Colors.white,
            ),
          ),
        ),
        buttonDown: TextComponent(
          text: 'Play',
          textRenderer: TextPaint(
            style: const TextStyle(
              fontSize: 32,
              color: Colors.grey,
            ),
          ),
        ),
        anchor: Anchor.center,
      ),
    );
  }
}

これでサウンドが再生されます。

© 2023 tnantoka