mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-02 03:15:43 +08:00
59 lines
1.2 KiB
Dart
59 lines
1.2 KiB
Dart
import 'package:flame/flame.dart';
|
|
import 'package:flame/game.dart';
|
|
import 'package:flame/components/component.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
void main() async {
|
|
final Size size = await Flame.util.initialDimensions();
|
|
runApp(MyGame(size).widget);
|
|
}
|
|
|
|
class Ball extends PositionComponent {
|
|
final Size gameSize;
|
|
final paint = Paint()..color = const Color(0xFFFFFFFF);
|
|
|
|
bool foward = true;
|
|
|
|
Ball(this.gameSize);
|
|
|
|
@override
|
|
void render(Canvas c) {
|
|
c.drawOval(toRect(), paint);
|
|
}
|
|
|
|
@override
|
|
void update(double delta) {
|
|
x += (foward ? 1 : -1) * 100 * delta;
|
|
|
|
if (x <= 0 || x + width >= gameSize.width) {
|
|
if (foward) {
|
|
x = gameSize.width - width - 1;
|
|
} else {
|
|
x = 1;
|
|
}
|
|
|
|
foward = !foward;
|
|
print('boin');
|
|
Flame.audio.play('boin.mp3', volume: 1.2);
|
|
}
|
|
}
|
|
}
|
|
|
|
class MyGame extends BaseGame {
|
|
MyGame(Size screenSize) {
|
|
size = screenSize;
|
|
_start();
|
|
}
|
|
|
|
void _start() async {
|
|
Flame.audio.disableLog();
|
|
Flame.audio.load('boin.mp3');
|
|
Flame.audio.loop('music.mp3', volume: 0.4);
|
|
|
|
add(Ball(size)
|
|
..y = (size.height / 2) - 50
|
|
..width = 100
|
|
..height = 100);
|
|
}
|
|
}
|