mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-02 11:43:19 +08:00
feat: Bump to Flutter 2.10.0 (#1617)
This commit is contained in:
@ -1,3 +1,5 @@
|
|||||||
|
// ignore_for_file: unused_element
|
||||||
|
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
|
||||||
import 'package:flame/collisions.dart';
|
import 'package:flame/collisions.dart';
|
||||||
|
|||||||
@ -6,8 +6,8 @@ publish_to: 'none'
|
|||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame: ^1.1.1
|
flame: ^1.1.1
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 0.1.0
|
|||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame:
|
flame:
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import 'package:flutter/widgets.dart' hide WidgetBuilder;
|
|||||||
|
|
||||||
import 'game_loop.dart';
|
import 'game_loop.dart';
|
||||||
import 'mixins/game.dart';
|
import 'mixins/game.dart';
|
||||||
|
//ignore_for_file: unnecessary_non_null_assertion
|
||||||
|
|
||||||
class GameRenderBox extends RenderBox with WidgetsBindingObserver {
|
class GameRenderBox extends RenderBox with WidgetsBindingObserver {
|
||||||
BuildContext buildContext;
|
BuildContext buildContext;
|
||||||
|
|||||||
@ -49,7 +49,7 @@ class GameWidget<T extends Game> extends StatefulWidget {
|
|||||||
/// A map to show widgets overlay.
|
/// A map to show widgets overlay.
|
||||||
///
|
///
|
||||||
/// See also:
|
/// See also:
|
||||||
/// - [new GameWidget]
|
/// - [GameWidget]
|
||||||
/// - [Game.overlays]
|
/// - [Game.overlays]
|
||||||
final Map<String, OverlayWidgetBuilder<T>>? overlayBuilderMap;
|
final Map<String, OverlayWidgetBuilder<T>>? overlayBuilderMap;
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ class GameWidget<T extends Game> extends StatefulWidget {
|
|||||||
/// To control the overlays that are active use [Game.overlays].
|
/// To control the overlays that are active use [Game.overlays].
|
||||||
///
|
///
|
||||||
/// See also:
|
/// See also:
|
||||||
/// - [new GameWidget]
|
/// - [GameWidget]
|
||||||
/// - [Game.overlays]
|
/// - [Game.overlays]
|
||||||
final List<String>? initialActiveOverlays;
|
final List<String>? initialActiveOverlays;
|
||||||
|
|
||||||
|
|||||||
@ -193,7 +193,7 @@ Widget applyAdvancedGesturesDetectors(Game game, Widget child) {
|
|||||||
|
|
||||||
if (game is MultiTapListener) {
|
if (game is MultiTapListener) {
|
||||||
addRecognizer(
|
addRecognizer(
|
||||||
() => MultiTapGestureRecognizer(),
|
MultiTapGestureRecognizer.new,
|
||||||
(MultiTapGestureRecognizer instance) {
|
(MultiTapGestureRecognizer instance) {
|
||||||
final g = game as MultiTapListener;
|
final g = game as MultiTapListener;
|
||||||
instance.longTapDelay = Duration(
|
instance.longTapDelay = Duration(
|
||||||
@ -210,7 +210,7 @@ Widget applyAdvancedGesturesDetectors(Game game, Widget child) {
|
|||||||
|
|
||||||
void addDragRecognizer(Drag Function(int, DragStartInfo) config) {
|
void addDragRecognizer(Drag Function(int, DragStartInfo) config) {
|
||||||
addRecognizer(
|
addRecognizer(
|
||||||
() => ImmediateMultiDragGestureRecognizer(),
|
ImmediateMultiDragGestureRecognizer.new,
|
||||||
(ImmediateMultiDragGestureRecognizer instance) {
|
(ImmediateMultiDragGestureRecognizer instance) {
|
||||||
var lastGeneratedDragId = 0;
|
var lastGeneratedDragId = 0;
|
||||||
instance.onStart = (Offset o) {
|
instance.onStart = (Offset o) {
|
||||||
|
|||||||
@ -18,8 +18,8 @@ abstract class TextRenderer {
|
|||||||
/// If you add a new [TextRenderer] child, you can register it by adding it,
|
/// If you add a new [TextRenderer] child, you can register it by adding it,
|
||||||
/// together with a provider lambda, to this map.
|
/// together with a provider lambda, to this map.
|
||||||
static Map<Type, TextRenderer Function()> defaultRenderersRegistry = {
|
static Map<Type, TextRenderer Function()> defaultRenderersRegistry = {
|
||||||
TextRenderer: () => TextPaint(),
|
TextRenderer: TextPaint.new,
|
||||||
TextPaint: () => TextPaint(),
|
TextPaint: TextPaint.new,
|
||||||
};
|
};
|
||||||
|
|
||||||
final TextDirection textDirection;
|
final TextDirection textDirection;
|
||||||
|
|||||||
@ -53,6 +53,8 @@ class NineTileBoxWidget extends StatelessWidget {
|
|||||||
|
|
||||||
final Widget? child;
|
final Widget? child;
|
||||||
|
|
||||||
|
final EdgeInsetsGeometry? padding;
|
||||||
|
|
||||||
/// A builder function that is called if the loading fails
|
/// A builder function that is called if the loading fails
|
||||||
final WidgetBuilder? errorBuilder;
|
final WidgetBuilder? errorBuilder;
|
||||||
|
|
||||||
@ -66,6 +68,7 @@ class NineTileBoxWidget extends StatelessWidget {
|
|||||||
this.width,
|
this.width,
|
||||||
this.height,
|
this.height,
|
||||||
this.child,
|
this.child,
|
||||||
|
this.padding,
|
||||||
this.errorBuilder,
|
this.errorBuilder,
|
||||||
this.loadingBuilder,
|
this.loadingBuilder,
|
||||||
Key? key,
|
Key? key,
|
||||||
@ -80,6 +83,7 @@ class NineTileBoxWidget extends StatelessWidget {
|
|||||||
this.width,
|
this.width,
|
||||||
this.height,
|
this.height,
|
||||||
this.child,
|
this.child,
|
||||||
|
this.padding,
|
||||||
this.errorBuilder,
|
this.errorBuilder,
|
||||||
this.loadingBuilder,
|
this.loadingBuilder,
|
||||||
Key? key,
|
Key? key,
|
||||||
@ -98,6 +102,7 @@ class NineTileBoxWidget extends StatelessWidget {
|
|||||||
width: width,
|
width: width,
|
||||||
height: height,
|
height: height,
|
||||||
child: child,
|
child: child,
|
||||||
|
padding: padding,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
errorBuilder: errorBuilder,
|
errorBuilder: errorBuilder,
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 1.1.1
|
|||||||
homepage: https://github.com/flame-engine/flame
|
homepage: https://github.com/flame-engine/flame
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@ -11,7 +11,7 @@ Future<void> testCollidableGame(
|
|||||||
String testName,
|
String testName,
|
||||||
Future Function(HasCollidablesGame) testBody,
|
Future Function(HasCollidablesGame) testBody,
|
||||||
) {
|
) {
|
||||||
return testWithGame(testName, () => HasCollidablesGame(), testBody);
|
return testWithGame(testName, HasCollidablesGame.new, testBody);
|
||||||
}
|
}
|
||||||
|
|
||||||
class TestHitbox extends RectangleHitbox {
|
class TestHitbox extends RectangleHitbox {
|
||||||
|
|||||||
@ -34,7 +34,7 @@ class _ParentOnPrepareComponent extends _OnPrepareComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final prepareGame = FlameTester(() => _PrepareGame());
|
final prepareGame = FlameTester(_PrepareGame.new);
|
||||||
|
|
||||||
group('Component', () {
|
group('Component', () {
|
||||||
testWithFlameGame('children in the constructor', (game) async {
|
testWithFlameGame('children in the constructor', (game) async {
|
||||||
|
|||||||
@ -49,7 +49,7 @@ class _MyAsyncChild extends PositionComponent {
|
|||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final size = Vector2.all(300);
|
final size = Vector2.all(300);
|
||||||
final withTappables = FlameTester(() => _HasTappablesGame());
|
final withTappables = FlameTester(_HasTappablesGame.new);
|
||||||
|
|
||||||
group('Composability', () {
|
group('Composability', () {
|
||||||
testWithFlameGame(
|
testWithFlameGame(
|
||||||
|
|||||||
@ -25,7 +25,7 @@ class _DraggableComponent extends PositionComponent with Draggable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final withDraggables = FlameTester(() => _GameHasDraggables());
|
final withDraggables = FlameTester(_GameHasDraggables.new);
|
||||||
|
|
||||||
group('Draggables', () {
|
group('Draggables', () {
|
||||||
withDraggables.test(
|
withDraggables.test(
|
||||||
|
|||||||
@ -22,7 +22,7 @@ class _BarComponent extends Component with HasGameRef<_MyGame> {}
|
|||||||
class MockFlameGame extends Mock implements _MyGame {}
|
class MockFlameGame extends Mock implements _MyGame {}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final withHasGameRef = FlameTester(() => _MyGame());
|
final withHasGameRef = FlameTester(_MyGame.new);
|
||||||
|
|
||||||
group('HasGameRef', () {
|
group('HasGameRef', () {
|
||||||
withHasGameRef.test('simple test', (game) {
|
withHasGameRef.test('simple test', (game) {
|
||||||
|
|||||||
@ -41,7 +41,7 @@ class _NonPropagatingComponent extends _HoverableComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final withHoverables = FlameTester(() => _GameWithHoverables());
|
final withHoverables = FlameTester(_GameWithHoverables.new);
|
||||||
|
|
||||||
group('Hoverable', () {
|
group('Hoverable', () {
|
||||||
withHoverables.test(
|
withHoverables.test(
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import 'package:test/test.dart';
|
|||||||
class _GameHasDraggables extends FlameGame with HasDraggables {}
|
class _GameHasDraggables extends FlameGame with HasDraggables {}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final withDraggables = FlameTester(() => _GameHasDraggables());
|
final withDraggables = FlameTester(_GameHasDraggables.new);
|
||||||
|
|
||||||
group('JoystickDirection tests', () {
|
group('JoystickDirection tests', () {
|
||||||
withDraggables.test('can convert angle to JoystickDirection', (game) async {
|
withDraggables.test('can convert angle to JoystickDirection', (game) async {
|
||||||
|
|||||||
@ -80,8 +80,8 @@ class _SlowLoadParallaxGame extends FlameGame {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final parallaxGame = FlameTester(() => _ParallaxGame());
|
final parallaxGame = FlameTester(_ParallaxGame.new);
|
||||||
final slowLoadParallaxGame = FlameTester(() => _SlowLoadParallaxGame());
|
final slowLoadParallaxGame = FlameTester(_SlowLoadParallaxGame.new);
|
||||||
|
|
||||||
group('parallax test', () {
|
group('parallax test', () {
|
||||||
parallaxGame.test(
|
parallaxGame.test(
|
||||||
|
|||||||
@ -33,8 +33,7 @@ void main() {
|
|||||||
flameGame.test(
|
flameGame.test(
|
||||||
'components with different priorities are sorted in the list',
|
'components with different priorities are sorted in the list',
|
||||||
(game) async {
|
(game) async {
|
||||||
final priorityComponents =
|
final priorityComponents = List.generate(10, _PriorityComponent.new);
|
||||||
List.generate(10, (i) => _PriorityComponent(i));
|
|
||||||
priorityComponents.shuffle();
|
priorityComponents.shuffle();
|
||||||
await game.ensureAddAll(priorityComponents);
|
await game.ensureAddAll(priorityComponents);
|
||||||
componentsSorted(game.children);
|
componentsSorted(game.children);
|
||||||
@ -45,9 +44,8 @@ void main() {
|
|||||||
'changing priority should reorder component list',
|
'changing priority should reorder component list',
|
||||||
(game) async {
|
(game) async {
|
||||||
final firstComponent = _PriorityComponent(-1);
|
final firstComponent = _PriorityComponent(-1);
|
||||||
final priorityComponents =
|
final priorityComponents = List.generate(10, _PriorityComponent.new)
|
||||||
List.generate(10, (i) => _PriorityComponent(i))
|
..add(firstComponent);
|
||||||
..add(firstComponent);
|
|
||||||
priorityComponents.shuffle();
|
priorityComponents.shuffle();
|
||||||
final components = game.children;
|
final components = game.children;
|
||||||
await game.ensureAddAll(priorityComponents);
|
await game.ensureAddAll(priorityComponents);
|
||||||
@ -63,9 +61,8 @@ void main() {
|
|||||||
'changing priority with the priority setter should reorder the list',
|
'changing priority with the priority setter should reorder the list',
|
||||||
(game) async {
|
(game) async {
|
||||||
final firstComponent = _PriorityComponent(-1);
|
final firstComponent = _PriorityComponent(-1);
|
||||||
final priorityComponents =
|
final priorityComponents = List.generate(10, _PriorityComponent.new)
|
||||||
List.generate(10, (i) => _PriorityComponent(i))
|
..add(firstComponent);
|
||||||
..add(firstComponent);
|
|
||||||
priorityComponents.shuffle();
|
priorityComponents.shuffle();
|
||||||
final components = game.children;
|
final components = game.children;
|
||||||
await game.ensureAddAll(priorityComponents);
|
await game.ensureAddAll(priorityComponents);
|
||||||
@ -80,8 +77,7 @@ void main() {
|
|||||||
flameGame.test(
|
flameGame.test(
|
||||||
'changing priorities should reorder component list',
|
'changing priorities should reorder component list',
|
||||||
(game) async {
|
(game) async {
|
||||||
final priorityComponents =
|
final priorityComponents = List.generate(10, _PriorityComponent.new);
|
||||||
List.generate(10, (i) => _PriorityComponent(i));
|
|
||||||
priorityComponents.shuffle();
|
priorityComponents.shuffle();
|
||||||
final components = game.children;
|
final components = game.children;
|
||||||
await game.ensureAddAll(priorityComponents);
|
await game.ensureAddAll(priorityComponents);
|
||||||
@ -102,8 +98,7 @@ void main() {
|
|||||||
'changing child priority should reorder component list',
|
'changing child priority should reorder component list',
|
||||||
(game) async {
|
(game) async {
|
||||||
final parentComponent = _PriorityComponent(0);
|
final parentComponent = _PriorityComponent(0);
|
||||||
final priorityComponents =
|
final priorityComponents = List.generate(10, _PriorityComponent.new);
|
||||||
List.generate(10, (i) => _PriorityComponent(i));
|
|
||||||
priorityComponents.shuffle();
|
priorityComponents.shuffle();
|
||||||
await game.ensureAdd(parentComponent);
|
await game.ensureAdd(parentComponent);
|
||||||
await parentComponent.ensureAddAll(priorityComponents);
|
await parentComponent.ensureAddAll(priorityComponents);
|
||||||
@ -121,8 +116,7 @@ void main() {
|
|||||||
'changing child priorities should reorder component list',
|
'changing child priorities should reorder component list',
|
||||||
(game) async {
|
(game) async {
|
||||||
final parentComponent = _PriorityComponent(0);
|
final parentComponent = _PriorityComponent(0);
|
||||||
final priorityComponents =
|
final priorityComponents = List.generate(10, _PriorityComponent.new);
|
||||||
List.generate(10, (i) => _PriorityComponent(i));
|
|
||||||
priorityComponents.shuffle();
|
priorityComponents.shuffle();
|
||||||
await game.ensureAdd(parentComponent);
|
await game.ensureAdd(parentComponent);
|
||||||
await parentComponent.ensureAddAll(priorityComponents);
|
await parentComponent.ensureAddAll(priorityComponents);
|
||||||
@ -145,8 +139,7 @@ void main() {
|
|||||||
(game) async {
|
(game) async {
|
||||||
final grandParentComponent = _PriorityComponent(0);
|
final grandParentComponent = _PriorityComponent(0);
|
||||||
final parentComponent = _PriorityComponent(0);
|
final parentComponent = _PriorityComponent(0);
|
||||||
final priorityComponents =
|
final priorityComponents = List.generate(10, _PriorityComponent.new);
|
||||||
List.generate(10, (i) => _PriorityComponent(i));
|
|
||||||
priorityComponents.shuffle();
|
priorityComponents.shuffle();
|
||||||
await game.ensureAdd(grandParentComponent);
|
await game.ensureAdd(grandParentComponent);
|
||||||
await grandParentComponent.ensureAdd(parentComponent);
|
await grandParentComponent.ensureAdd(parentComponent);
|
||||||
|
|||||||
@ -30,7 +30,7 @@ class _NonRepeatingTimerComponent extends TimerComponent {
|
|||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
group('TimerComponent', () {
|
group('TimerComponent', () {
|
||||||
final tester = FlameTester(() => FlameGame());
|
final tester = FlameTester(FlameGame.new);
|
||||||
|
|
||||||
tester.test('runs the tick method', (game) {
|
tester.test('runs the tick method', (game) {
|
||||||
final timer = _MyTimerComponent();
|
final timer = _MyTimerComponent();
|
||||||
|
|||||||
@ -315,7 +315,7 @@ void main() {
|
|||||||
group('errors', () {
|
group('errors', () {
|
||||||
test('empty', () {
|
test('empty', () {
|
||||||
expect(
|
expect(
|
||||||
() => EffectController(),
|
EffectController.new,
|
||||||
failsAssert('Either duration or speed must be specified'),
|
failsAssert('Either duration or speed must be specified'),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -46,7 +46,7 @@ void main() {
|
|||||||
expect(viewport.containsLocalPoint(Vector2(300, 100)), true);
|
expect(viewport.containsLocalPoint(Vector2(300, 100)), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
FlameTester(() => FlameGame()).testGameWidget(
|
FlameTester(FlameGame.new).testGameWidget(
|
||||||
'Clipping behavior',
|
'Clipping behavior',
|
||||||
setUp: (game, tester) async {
|
setUp: (game, tester) async {
|
||||||
final world = World();
|
final world = World();
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import 'package:flame_test/flame_test.dart';
|
|||||||
import 'package:flutter/rendering.dart';
|
import 'package:flutter/rendering.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
import 'projector_test.dart';
|
import 'projector_test.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
@ -42,7 +43,7 @@ void main() {
|
|||||||
|
|
||||||
testWithGame<_GameWithTappables>(
|
testWithGame<_GameWithTappables>(
|
||||||
'Add component with onLoad function',
|
'Add component with onLoad function',
|
||||||
() => _GameWithTappables(),
|
_GameWithTappables.new,
|
||||||
(game) async {
|
(game) async {
|
||||||
final component = _MyAsyncComponent();
|
final component = _MyAsyncComponent();
|
||||||
await game.ensureAdd(component);
|
await game.ensureAdd(component);
|
||||||
@ -66,7 +67,7 @@ void main() {
|
|||||||
|
|
||||||
testWithGame<_GameWithTappables>(
|
testWithGame<_GameWithTappables>(
|
||||||
'component can be tapped',
|
'component can be tapped',
|
||||||
() => _GameWithTappables(),
|
_GameWithTappables.new,
|
||||||
(game) async {
|
(game) async {
|
||||||
final component = _MyTappableComponent();
|
final component = _MyTappableComponent();
|
||||||
await game.ensureAdd(component);
|
await game.ensureAdd(component);
|
||||||
|
|||||||
@ -49,9 +49,9 @@ class _PanGame extends FlameGame with PanDetector {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final horizontalGame = FlameTester(() => _HorizontalDragGame());
|
final horizontalGame = FlameTester(_HorizontalDragGame.new);
|
||||||
final verticalGame = FlameTester(() => _VerticalDragGame());
|
final verticalGame = FlameTester(_VerticalDragGame.new);
|
||||||
final panGame = FlameTester(() => _PanGame());
|
final panGame = FlameTester(_PanGame.new);
|
||||||
|
|
||||||
group('GameWidget - HorizontalDragDetector', () {
|
group('GameWidget - HorizontalDragDetector', () {
|
||||||
horizontalGame.testGameWidget(
|
horizontalGame.testGameWidget(
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import 'package:flutter_test/flutter_test.dart';
|
|||||||
class _Wrapper extends StatefulWidget {
|
class _Wrapper extends StatefulWidget {
|
||||||
const _Wrapper({
|
const _Wrapper({
|
||||||
required this.child,
|
required this.child,
|
||||||
|
// ignore: unused_element
|
||||||
this.small = false,
|
this.small = false,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -29,8 +29,8 @@ class _DoubleTapGame extends FlameGame with DoubleTapDetector {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final tapGame = FlameTester(() => _TapGame());
|
final tapGame = FlameTester(_TapGame.new);
|
||||||
final doubleTapGame = FlameTester(() => _DoubleTapGame());
|
final doubleTapGame = FlameTester(_DoubleTapGame.new);
|
||||||
|
|
||||||
group('GameWidget - TapDetectors', () {
|
group('GameWidget - TapDetectors', () {
|
||||||
tapGame.testGameWidget(
|
tapGame.testGameWidget(
|
||||||
|
|||||||
@ -67,7 +67,7 @@ class _MyGame extends FlameGame {
|
|||||||
|
|
||||||
FlameTester<_MyGame> myGame({required bool open}) {
|
FlameTester<_MyGame> myGame({required bool open}) {
|
||||||
return FlameTester(
|
return FlameTester(
|
||||||
() => _MyGame(),
|
_MyGame.new,
|
||||||
pumpWidget: (gameWidget, tester) async {
|
pumpWidget: (gameWidget, tester) async {
|
||||||
await tester.pumpWidget(_Wrapper(child: gameWidget, open: open));
|
await tester.pumpWidget(_Wrapper(child: gameWidget, open: open));
|
||||||
},
|
},
|
||||||
|
|||||||
@ -56,7 +56,7 @@ class _DraggableComponent extends PositionComponent with Draggable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final withDraggables = FlameTester(() => _GameWithDraggables());
|
final withDraggables = FlameTester(_GameWithDraggables.new);
|
||||||
|
|
||||||
group('HasDraggables', () {
|
group('HasDraggables', () {
|
||||||
withDraggables.test(
|
withDraggables.test(
|
||||||
|
|||||||
@ -71,7 +71,7 @@ class _TappableComponent extends PositionComponent with Tappable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final withTappables = FlameTester(() => _GameWithTappables());
|
final withTappables = FlameTester(_GameWithTappables.new);
|
||||||
|
|
||||||
group('HasTappables', () {
|
group('HasTappables', () {
|
||||||
withTappables.test(
|
withTappables.test(
|
||||||
|
|||||||
@ -18,7 +18,7 @@ void main() {
|
|||||||
..onGameResize(Vector2.all(100))
|
..onGameResize(Vector2.all(100))
|
||||||
..onMount();
|
..onMount();
|
||||||
expect(
|
expect(
|
||||||
() => FlameGame(),
|
FlameGame.new,
|
||||||
failsAssert(
|
failsAssert(
|
||||||
"Instance of 'FlameGame' instantiated, while another game "
|
"Instance of 'FlameGame' instantiated, while another game "
|
||||||
"Instance of 'SingletonGame' declares itself to be a singleton",
|
"Instance of 'SingletonGame' declares itself to be a singleton",
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import '_resources/load_image.dart';
|
|||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
group('Sprite', () {
|
group('Sprite', () {
|
||||||
FlameTester(() => FlameGame()).testGameWidget(
|
FlameTester(FlameGame.new).testGameWidget(
|
||||||
'Render with anchor',
|
'Render with anchor',
|
||||||
setUp: (game, tester) async {
|
setUp: (game, tester) async {
|
||||||
game.add(MyComponent()..position = Vector2.all(25));
|
game.add(MyComponent()..position = Vector2.all(25));
|
||||||
|
|||||||
@ -44,7 +44,7 @@ void main() {
|
|||||||
|
|
||||||
test('custom renderer', () {
|
test('custom renderer', () {
|
||||||
TextRenderer.defaultRenderersRegistry[_CustomTextRenderer] =
|
TextRenderer.defaultRenderersRegistry[_CustomTextRenderer] =
|
||||||
() => _CustomTextRenderer();
|
_CustomTextRenderer.new;
|
||||||
final tc = TextComponent<_CustomTextRenderer>(text: 'foo');
|
final tc = TextComponent<_CustomTextRenderer>(text: 'foo');
|
||||||
expect(tc.textRenderer, isA<_CustomTextRenderer>());
|
expect(tc.textRenderer, isA<_CustomTextRenderer>());
|
||||||
});
|
});
|
||||||
|
|||||||
@ -6,7 +6,7 @@ publish_to: 'none'
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame:
|
flame:
|
||||||
|
|||||||
@ -3,6 +3,8 @@ import 'dart:io';
|
|||||||
import 'package:audioplayers/audioplayers.dart';
|
import 'package:audioplayers/audioplayers.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
|
|
||||||
|
//ignore_for_file: invalid_null_aware_operator
|
||||||
|
|
||||||
/// {@template _bgm}
|
/// {@template _bgm}
|
||||||
/// The looping background music class.
|
/// The looping background music class.
|
||||||
///
|
///
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 1.0.2
|
|||||||
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_audio
|
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_audio
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame: ^1.1.1
|
flame: ^1.1.1
|
||||||
|
|||||||
@ -6,7 +6,7 @@ publish_to: 'none'
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 1.4.0
|
|||||||
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_bloc
|
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_bloc
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@ -47,7 +47,7 @@ void main() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
final blocGame = FlameTester<MyBlocGame>(
|
final blocGame = FlameTester<MyBlocGame>(
|
||||||
() => MyBlocGame(),
|
MyBlocGame.new,
|
||||||
pumpWidget: (gameWidget, tester) async {
|
pumpWidget: (gameWidget, tester) async {
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
BlocProvider<InventoryCubit>.value(
|
BlocProvider<InventoryCubit>.value(
|
||||||
|
|||||||
@ -87,7 +87,7 @@ void main() {
|
|||||||
group('onRemove', () {
|
group('onRemove', () {
|
||||||
testWithFlameGame('dispose created blocs', (game) async {
|
testWithFlameGame('dispose created blocs', (game) async {
|
||||||
final provider = FlameBlocProvider<InventoryCubit, InventoryState>(
|
final provider = FlameBlocProvider<InventoryCubit, InventoryState>(
|
||||||
create: () => InventoryCubit(),
|
create: InventoryCubit.new,
|
||||||
);
|
);
|
||||||
await game.ensureAdd(provider);
|
await game.ensureAdd(provider);
|
||||||
expect(provider.bloc.isClosed, isFalse);
|
expect(provider.bloc.isClosed, isFalse);
|
||||||
|
|||||||
@ -6,7 +6,7 @@ publish_to: 'none'
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 1.0.2
|
|||||||
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_fire_atlas
|
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_fire_atlas
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@ -4,8 +4,8 @@ publish_to: 'none'
|
|||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame:
|
flame:
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 1.1.1
|
|||||||
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_flare
|
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_flare
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame: ^1.1.1
|
flame: ^1.1.1
|
||||||
|
|||||||
@ -6,8 +6,8 @@ publish_to: 'none'
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 0.11.0
|
|||||||
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_forge2d
|
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_forge2d
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame: ^1.1.1
|
flame: ^1.1.1
|
||||||
|
|||||||
@ -5,7 +5,7 @@ homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_lint
|
|||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
dartdoc: ^4.1.0
|
dartdoc: ^4.1.0
|
||||||
|
|||||||
@ -26,9 +26,9 @@ class ExampleGame extends OxygenGame {
|
|||||||
world.registerSystem(SpriteSystem());
|
world.registerSystem(SpriteSystem());
|
||||||
world.registerSystem(KawabungaSystem());
|
world.registerSystem(KawabungaSystem());
|
||||||
|
|
||||||
world.registerComponent<TimerComponent, double>(() => TimerComponent());
|
world.registerComponent<TimerComponent, double>(TimerComponent.new);
|
||||||
world.registerComponent<VelocityComponent, Vector2>(
|
world.registerComponent<VelocityComponent, Vector2>(
|
||||||
() => VelocityComponent(),
|
VelocityComponent.new,
|
||||||
);
|
);
|
||||||
|
|
||||||
final random = Random();
|
final random = Random();
|
||||||
|
|||||||
@ -6,7 +6,7 @@ publish_to: 'none'
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@ -41,17 +41,17 @@ abstract class OxygenGame with Game {
|
|||||||
@mustCallSuper
|
@mustCallSuper
|
||||||
Future<void> onLoad() async {
|
Future<void> onLoad() async {
|
||||||
// Registering default components.
|
// Registering default components.
|
||||||
world.registerComponent<SizeComponent, Vector2>(() => SizeComponent());
|
world.registerComponent<SizeComponent, Vector2>(SizeComponent.new);
|
||||||
world.registerComponent<PositionComponent, Vector2>(
|
world.registerComponent<PositionComponent, Vector2>(
|
||||||
() => PositionComponent(),
|
PositionComponent.new,
|
||||||
);
|
);
|
||||||
world.registerComponent<AngleComponent, double>(() => AngleComponent());
|
world.registerComponent<AngleComponent, double>(AngleComponent.new);
|
||||||
world.registerComponent<AnchorComponent, Anchor>(() => AnchorComponent());
|
world.registerComponent<AnchorComponent, Anchor>(AnchorComponent.new);
|
||||||
world.registerComponent<SpriteComponent, SpriteInit>(
|
world.registerComponent<SpriteComponent, SpriteInit>(
|
||||||
() => SpriteComponent(),
|
SpriteComponent.new,
|
||||||
);
|
);
|
||||||
world.registerComponent<TextComponent, TextInit>(() => TextComponent());
|
world.registerComponent<TextComponent, TextInit>(TextComponent.new);
|
||||||
world.registerComponent<FlipComponent, FlipInit>(() => FlipComponent());
|
world.registerComponent<FlipComponent, FlipInit>(FlipComponent.new);
|
||||||
|
|
||||||
await init();
|
await init();
|
||||||
world.init();
|
world.init();
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 0.1.2
|
|||||||
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_oxygen
|
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_oxygen
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@ -4,7 +4,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
rive: 0.8.4
|
rive: 0.8.4
|
||||||
|
|||||||
@ -4,8 +4,8 @@ homepage: https://github.com/flame-engine/flame
|
|||||||
version: 1.2.0
|
version: 1.2.0
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame: ^1.1.1
|
flame: ^1.1.1
|
||||||
|
|||||||
@ -6,7 +6,7 @@ publish_to: 'none'
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 1.2.0
|
|||||||
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_svg
|
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_svg
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame: ^1.1.1
|
flame: ^1.1.1
|
||||||
|
|||||||
@ -5,7 +5,7 @@ publish_to: 'none'
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import 'package:flame_test/flame_test.dart';
|
|||||||
import 'package:flame_test_example/game.dart';
|
import 'package:flame_test_example/game.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
final myGame = FlameTester(() => MyGame());
|
final myGame = FlameTester(MyGame.new);
|
||||||
void main() {
|
void main() {
|
||||||
group('flameTest', () {
|
group('flameTest', () {
|
||||||
TestWidgetsFlutterBinding.ensureInitialized();
|
TestWidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|||||||
@ -201,4 +201,4 @@ class FlameTester<T extends FlameGame> extends GameTester<T> {
|
|||||||
|
|
||||||
/// Default instance of Flame Tester to be used when you don't care about
|
/// Default instance of Flame Tester to be used when you don't care about
|
||||||
/// changing any configuration.
|
/// changing any configuration.
|
||||||
final flameGame = FlameTester<FlameGame>(() => FlameGame());
|
final flameGame = FlameTester<FlameGame>(FlameGame.new);
|
||||||
|
|||||||
@ -28,7 +28,7 @@ Future<void> testWithFlameGame(
|
|||||||
String testName,
|
String testName,
|
||||||
AsyncGameFunction<FlameGame> testBody,
|
AsyncGameFunction<FlameGame> testBody,
|
||||||
) {
|
) {
|
||||||
return testWithGame<FlameGame>(testName, () => FlameGame(), testBody);
|
return testWithGame<FlameGame>(testName, FlameGame.new, testBody);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Utility function for writing tests that require a custom game instance.
|
/// Utility function for writing tests that require a custom game instance.
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 1.4.0
|
|||||||
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_test
|
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_test
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame: ^1.1.1
|
flame: ^1.1.1
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import 'package:flutter_test/flutter_test.dart';
|
|||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
group('Golden tests', () {
|
group('Golden tests', () {
|
||||||
final tester = FlameTester(() => FlameGame());
|
final tester = FlameTester(FlameGame.new);
|
||||||
|
|
||||||
tester.testGameWidget(
|
tester.testGameWidget(
|
||||||
'renders correctly',
|
'renders correctly',
|
||||||
|
|||||||
@ -18,7 +18,7 @@ void main() {
|
|||||||
|
|
||||||
testWithGame<RecordedGame>(
|
testWithGame<RecordedGame>(
|
||||||
'correct event sequence',
|
'correct event sequence',
|
||||||
() => RecordedGame(),
|
RecordedGame.new,
|
||||||
(game) async {
|
(game) async {
|
||||||
var events = <String>[];
|
var events = <String>[];
|
||||||
events = game.events;
|
events = game.events;
|
||||||
|
|||||||
@ -4,7 +4,7 @@ publish_to: 'none'
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame: ^1.1.1
|
flame: ^1.1.1
|
||||||
|
|||||||
@ -4,8 +4,8 @@ version: 1.4.0
|
|||||||
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_tiled
|
homepage: https://github.com/flame-engine/flame/tree/main/packages/flame_tiled
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.14.0 <3.0.0"
|
sdk: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.5.0"
|
flutter: ">=2.10.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flame: ^1.1.1
|
flame: ^1.1.1
|
||||||
|
|||||||
Reference in New Issue
Block a user