Files
flame/lib/box2d/box2d_game.dart
2020-04-20 21:11:54 +02:00

49 lines
912 B
Dart

import 'dart:ui';
import 'package:flame/box2d/box2d_component.dart';
import 'package:flame/components/component.dart';
import 'package:flame/game/base_game.dart';
class Box2DGame extends BaseGame {
final Box2DComponent box;
final List<BodyComponent> _addLater = [];
Box2DGame(this.box) : super();
@override
void add(Component c) {
if (c is BodyComponent) {
box.add(c);
} else {
super.add(c);
}
}
@override
void addLater(Component c) {
if (c is BodyComponent) {
_addLater.add(c);
} else {
super.addLater(c);
}
}
@override
void update(double t) {
super.update(t);
box.update(t);
box.components
.where((c) => c.destroy())
.toList()
.forEach((c) => box.remove(c));
box.addAll(_addLater);
_addLater.clear();
}
@override
void render(Canvas c) {
super.render(c);
box.render(c);
}
}