Files
flame/doc/examples/sound/lib/main.dart
2020-09-18 00:00:13 +02:00

61 lines
1.3 KiB
Dart

import 'package:flame/flame.dart';
import 'package:flame/game.dart';
import 'package:flame/vector2f.dart';
import 'package:flame/components/position_component.dart';
import 'package:flutter/material.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final Vector2F size = await Flame.util.initialDimensions();
runApp(MyGame(size).widget);
}
class Ball extends PositionComponent {
final Vector2F gameSize;
final paint = Paint()..color = const Color(0xFFFFFFFF);
bool forward = true;
Ball(this.gameSize);
@override
void render(Canvas c) {
super.render(c);
c.drawOval(toOriginRect(), paint);
}
@override
void update(double dt) {
super.update(dt);
x += (forward ? 1 : -1) * 100 * dt;
if (x <= 0 || x + width >= gameSize.x) {
if (forward) {
x = gameSize.x - width - 1;
} else {
x = 1;
}
forward = !forward;
Flame.audio.play('boin.mp3', volume: 1.0);
}
}
}
class MyGame extends BaseGame {
MyGame(Vector2F screenSize) {
size = screenSize;
Flame.audio.disableLog();
Flame.audio.load('boin.mp3');
Flame.audio.loop('music.mp3', volume: 0.4);
add(
Ball(size)
..y = (size.y / 2) - 50
..width = 100
..height = 100,
);
}
}