mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-01 19:12:31 +08:00
Unify mixin names (#1114)
This commit is contained in:
@ -179,7 +179,7 @@ children tree and then passed further down until a method returns `false`.
|
|||||||
|
|
||||||
### Tappable components
|
### Tappable components
|
||||||
|
|
||||||
By adding the `HasTappableComponents` mixin to your game, and using the mixin `Tappable` on your
|
By adding the `HasTappables` mixin to your game, and using the mixin `Tappable` on your
|
||||||
components, you can override the following methods on your components:
|
components, you can override the following methods on your components:
|
||||||
|
|
||||||
```dart
|
```dart
|
||||||
@ -216,21 +216,21 @@ class TappableComponent extends PositionComponent with Tappable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class MyGame extends FlameGame with HasTappableComponents {
|
class MyGame extends FlameGame with HasTappables {
|
||||||
MyGame() {
|
MyGame() {
|
||||||
add(TappableComponent());
|
add(TappableComponent());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note**: `HasTappableComponents` uses an advanced gesture detector under the hood and as explained
|
**Note**: `HasTappables` uses an advanced gesture detector under the hood and as explained
|
||||||
further up on this page it shouldn't be used alongside basic detectors.
|
further up on this page it shouldn't be used alongside basic detectors.
|
||||||
|
|
||||||
### Draggable components
|
### Draggable components
|
||||||
|
|
||||||
Just like with `Tappable`, Flame offers a mixin for `Draggable`.
|
Just like with `Tappable`, Flame offers a mixin for `Draggable`.
|
||||||
|
|
||||||
By adding the `HasDraggableComponents` mixin to your game, and by using the mixin `Draggable` on
|
By adding the `HasDraggables` mixin to your game, and by using the mixin `Draggable` on
|
||||||
your components, they can override the simple methods that enable an easy to use drag api on your
|
your components, they can override the simple methods that enable an easy to use drag api on your
|
||||||
components.
|
components.
|
||||||
|
|
||||||
@ -291,14 +291,14 @@ class DraggableComponent extends PositionComponent with Draggable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class MyGame extends FlameGame with HasDraggableComponents {
|
class MyGame extends FlameGame with HasDraggables {
|
||||||
MyGame() {
|
MyGame() {
|
||||||
add(DraggableComponent());
|
add(DraggableComponent());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note**: `HasDraggableComponents` uses an advanced gesture detector under the hood and as explained
|
**Note**: `HasDraggables` uses an advanced gesture detector under the hood and as explained
|
||||||
further up on this page, shouldn't be used alongside basic detectors.
|
further up on this page, shouldn't be used alongside basic detectors.
|
||||||
|
|
||||||
### Hoverable components
|
### Hoverable components
|
||||||
@ -306,7 +306,7 @@ further up on this page, shouldn't be used alongside basic detectors.
|
|||||||
Just like the others, this mixin allows for easy wiring of your component to listen to hover states
|
Just like the others, this mixin allows for easy wiring of your component to listen to hover states
|
||||||
and events.
|
and events.
|
||||||
|
|
||||||
By adding the `HasHoverableComponents` mixin to your base game, and by using the mixin `Hoverable` on
|
By adding the `HasHoverables` mixin to your base game, and by using the mixin `Hoverable` on
|
||||||
your components, they get an `isHovered` field and a couple of methods (`onHoverStart`, `onHoverEnd`) that
|
your components, they get an `isHovered` field and a couple of methods (`onHoverStart`, `onHoverEnd`) that
|
||||||
you can override if you want to listen to the events.
|
you can override if you want to listen to the events.
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@ add it to your game.
|
|||||||
Check this example to get a better understanding:
|
Check this example to get a better understanding:
|
||||||
|
|
||||||
```dart
|
```dart
|
||||||
class MyGame extends FlameGame with HasDraggableComponents {
|
class MyGame extends FlameGame with HasDraggables {
|
||||||
|
|
||||||
MyGame() {
|
MyGame() {
|
||||||
joystick.addObserver(player);
|
joystick.addObserver(player);
|
||||||
|
|||||||
@ -132,7 +132,7 @@ class Rock extends SquareComponent with Collidable, Tappable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class CameraAndViewportGame extends FlameGame
|
class CameraAndViewportGame extends FlameGame
|
||||||
with HasCollidables, HasTappableComponents, HasKeyboardHandlerComponents {
|
with HasCollidables, HasTappables, HasKeyboardHandlerComponents {
|
||||||
late MovableSquare square;
|
late MovableSquare square;
|
||||||
|
|
||||||
final Vector2 viewportResolution;
|
final Vector2 viewportResolution;
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import 'package:flutter/material.dart' hide Image, Draggable;
|
|||||||
enum Shapes { circle, rectangle, polygon }
|
enum Shapes { circle, rectangle, polygon }
|
||||||
|
|
||||||
class MultipleShapesExample extends FlameGame
|
class MultipleShapesExample extends FlameGame
|
||||||
with HasCollidables, HasDraggableComponents, FPSCounter {
|
with HasCollidables, HasDraggables, FPSCounter {
|
||||||
static const description = '''
|
static const description = '''
|
||||||
An example with many hitboxes that move around on the screen and during
|
An example with many hitboxes that move around on the screen and during
|
||||||
collisions they change color depending on what it is that they have collided
|
collisions they change color depending on what it is that they have collided
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import 'package:flame/palette.dart';
|
|||||||
|
|
||||||
enum Shapes { circle, rectangle, polygon }
|
enum Shapes { circle, rectangle, polygon }
|
||||||
|
|
||||||
class SimpleShapesExample extends FlameGame with HasTappableComponents {
|
class SimpleShapesExample extends FlameGame with HasTappables {
|
||||||
static const description = '''
|
static const description = '''
|
||||||
An example which adds random shapes on the screen when you tap it, if you
|
An example which adds random shapes on the screen when you tap it, if you
|
||||||
tap on an already existing shape it will remove that shape and replace it
|
tap on an already existing shape it will remove that shape and replace it
|
||||||
|
|||||||
@ -33,9 +33,9 @@ class ParentSquare extends Square with HasGameRef {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This class only has `HasDraggableComponents` since the game-in-game example
|
// This class only has `HasDraggables` since the game-in-game example
|
||||||
// moves a draggable component to this game.
|
// moves a draggable component to this game.
|
||||||
class Composability extends FlameGame with HasDraggableComponents {
|
class Composability extends FlameGame with HasDraggables {
|
||||||
late ParentSquare parentSquare;
|
late ParentSquare parentSquare;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@ -26,7 +26,7 @@ class GameChangeTimer extends TimerComponent with HasGameRef<GameInGame> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class GameInGame extends FlameGame with HasDraggableComponents {
|
class GameInGame extends FlameGame with HasDraggables {
|
||||||
@override
|
@override
|
||||||
bool debugMode = true;
|
bool debugMode = true;
|
||||||
late final Composability composedGame;
|
late final Composability composedGame;
|
||||||
|
|||||||
@ -34,7 +34,7 @@ class Square extends PositionComponent with HasGameRef<Priority>, Tappable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Priority extends FlameGame with HasTappableComponents {
|
class Priority extends FlameGame with HasTappables {
|
||||||
@override
|
@override
|
||||||
Future<void> onLoad() async {
|
Future<void> onLoad() async {
|
||||||
await super.onLoad();
|
await super.onLoad();
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import 'package:flame/input.dart';
|
|||||||
import 'package:flame/src/effects2/remove_effect.dart'; // ignore: implementation_imports
|
import 'package:flame/src/effects2/remove_effect.dart'; // ignore: implementation_imports
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class RemoveEffectExample extends FlameGame with HasTappableComponents {
|
class RemoveEffectExample extends FlameGame with HasTappables {
|
||||||
static const description = '''
|
static const description = '''
|
||||||
Click on any circle to apply a RemoveEffect, which will make the circle
|
Click on any circle to apply a RemoveEffect, which will make the circle
|
||||||
disappear after a 0.5 second delay.
|
disappear after a 0.5 second delay.
|
||||||
|
|||||||
@ -59,7 +59,7 @@ class DraggableSquare extends PositionComponent with Draggable, HasGameRef {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DraggablesGame extends FlameGame with HasDraggableComponents {
|
class DraggablesGame extends FlameGame with HasDraggables {
|
||||||
final double zoom;
|
final double zoom;
|
||||||
late final DraggableSquare square;
|
late final DraggableSquare square;
|
||||||
|
|
||||||
|
|||||||
@ -19,8 +19,7 @@ class HoverableSquare extends PositionComponent with Hoverable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class HoverablesGame extends FlameGame
|
class HoverablesGame extends FlameGame with HasHoverables, TapDetector {
|
||||||
with HasHoverableComponents, TapDetector {
|
|
||||||
@override
|
@override
|
||||||
Future<void> onLoad() async {
|
Future<void> onLoad() async {
|
||||||
await super.onLoad();
|
await super.onLoad();
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import 'package:flutter/painting.dart';
|
|||||||
|
|
||||||
import 'joystick_player.dart';
|
import 'joystick_player.dart';
|
||||||
|
|
||||||
class JoystickGame extends FlameGame with HasDraggableComponents {
|
class JoystickGame extends FlameGame with HasDraggables {
|
||||||
late final JoystickPlayer player;
|
late final JoystickPlayer player;
|
||||||
late final JoystickComponent joystick;
|
late final JoystickComponent joystick;
|
||||||
|
|
||||||
|
|||||||
@ -12,8 +12,7 @@ import 'package:flutter/painting.dart';
|
|||||||
|
|
||||||
import 'joystick_player.dart';
|
import 'joystick_player.dart';
|
||||||
|
|
||||||
class JoystickAdvancedGame extends FlameGame
|
class JoystickAdvancedGame extends FlameGame with HasDraggables, HasTappables {
|
||||||
with HasDraggableComponents, HasTappableComponents {
|
|
||||||
late final JoystickPlayer player;
|
late final JoystickPlayer player;
|
||||||
late final JoystickComponent joystick;
|
late final JoystickComponent joystick;
|
||||||
late final TextComponent speedText;
|
late final TextComponent speedText;
|
||||||
|
|||||||
@ -35,7 +35,7 @@ class TappableSquare extends PositionComponent with Tappable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class OverlappingTappablesGame extends FlameGame with HasTappableComponents {
|
class OverlappingTappablesGame extends FlameGame with HasTappables {
|
||||||
@override
|
@override
|
||||||
Future<void> onLoad() async {
|
Future<void> onLoad() async {
|
||||||
await super.onLoad();
|
await super.onLoad();
|
||||||
|
|||||||
@ -40,7 +40,7 @@ class TappableSquare extends PositionComponent with Tappable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TappablesGame extends FlameGame with HasTappableComponents {
|
class TappablesGame extends FlameGame with HasTappables {
|
||||||
@override
|
@override
|
||||||
Future<void> onLoad() async {
|
Future<void> onLoad() async {
|
||||||
await super.onLoad();
|
await super.onLoad();
|
||||||
|
|||||||
@ -45,7 +45,7 @@ class ButtonComponent extends SpriteGroupComponent<ButtonState>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class SpriteGroupExample extends FlameGame with HasTappableComponents {
|
class SpriteGroupExample extends FlameGame with HasTappables {
|
||||||
@override
|
@override
|
||||||
Future<void> onLoad() async {
|
Future<void> onLoad() async {
|
||||||
await super.onLoad();
|
await super.onLoad();
|
||||||
|
|||||||
@ -33,6 +33,9 @@
|
|||||||
- Removed methods `preRender()` and `postRender()` in `Component`
|
- Removed methods `preRender()` and `postRender()` in `Component`
|
||||||
- Use `FlameTester` everywhere where it makes sense in the tests
|
- Use `FlameTester` everywhere where it makes sense in the tests
|
||||||
- Improved `IsometricTileMap`
|
- Improved `IsometricTileMap`
|
||||||
|
- Rename `HasTappableComponents` to `HasTappables`
|
||||||
|
- Rename `HasDraggableComponents` to `HasDraggables`
|
||||||
|
- Rename `HasHoverableComponents` to `HasHoverableis`
|
||||||
|
|
||||||
## [1.0.0-releasecandidate.16]
|
## [1.0.0-releasecandidate.16]
|
||||||
- `changePriority` no longer breaks game loop iteration
|
- `changePriority` no longer breaks game loop iteration
|
||||||
|
|||||||
@ -68,15 +68,15 @@ mixin Draggable on Component {
|
|||||||
if (isPrepared) {
|
if (isPrepared) {
|
||||||
final parentGame = findParent<FlameGame>();
|
final parentGame = findParent<FlameGame>();
|
||||||
assert(
|
assert(
|
||||||
parentGame is HasDraggableComponents,
|
parentGame is HasDraggables,
|
||||||
'Draggable Components can only be added to a FlameGame with '
|
'Draggable Components can only be added to a FlameGame with '
|
||||||
'HasDraggableComponents',
|
'HasDraggables',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mixin HasDraggableComponents on FlameGame {
|
mixin HasDraggables on FlameGame {
|
||||||
@mustCallSuper
|
@mustCallSuper
|
||||||
void onDragStart(int pointerId, DragStartInfo info) {
|
void onDragStart(int pointerId, DragStartInfo info) {
|
||||||
_onGenericEventReceived((c) => c.handleDragStart(pointerId, info));
|
_onGenericEventReceived((c) => c.handleDragStart(pointerId, info));
|
||||||
|
|||||||
@ -39,15 +39,15 @@ mixin Hoverable on Component {
|
|||||||
if (isPrepared) {
|
if (isPrepared) {
|
||||||
final parentGame = findParent<FlameGame>();
|
final parentGame = findParent<FlameGame>();
|
||||||
assert(
|
assert(
|
||||||
parentGame is HasHoverableComponents,
|
parentGame is HasHoverables,
|
||||||
'Hoverable Components can only be added to a FlameGame with '
|
'Hoverable Components can only be added to a FlameGame with '
|
||||||
'HasHoverableComponents',
|
'HasHoverables',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mixin HasHoverableComponents on FlameGame {
|
mixin HasHoverables on FlameGame {
|
||||||
@mustCallSuper
|
@mustCallSuper
|
||||||
void onMouseMove(PointerHoverInfo info) {
|
void onMouseMove(PointerHoverInfo info) {
|
||||||
bool _mouseMoveHandler(Hoverable c) {
|
bool _mouseMoveHandler(Hoverable c) {
|
||||||
|
|||||||
@ -53,15 +53,15 @@ mixin Tappable on Component {
|
|||||||
if (isPrepared) {
|
if (isPrepared) {
|
||||||
final parentGame = findParent<FlameGame>();
|
final parentGame = findParent<FlameGame>();
|
||||||
assert(
|
assert(
|
||||||
parentGame is HasTappableComponents,
|
parentGame is HasTappables,
|
||||||
'Tappable Components can only be added to a FlameGame with '
|
'Tappable Components can only be added to a FlameGame with '
|
||||||
'HasTappableComponents',
|
'HasTappables',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mixin HasTappableComponents on FlameGame {
|
mixin HasTappables on FlameGame {
|
||||||
void _handleTapEvent(bool Function(Tappable child) tapEventHandler) {
|
void _handleTapEvent(bool Function(Tappable child) tapEventHandler) {
|
||||||
for (final c in children.reversed()) {
|
for (final c in children.reversed()) {
|
||||||
var shouldContinue = c.propagateToChildren<Tappable>(tapEventHandler);
|
var shouldContinue = c.propagateToChildren<Tappable>(tapEventHandler);
|
||||||
|
|||||||
@ -23,13 +23,13 @@ bool hasBasicGestureDetectors(Game game) =>
|
|||||||
bool hasAdvancedGesturesDetectors(Game game) =>
|
bool hasAdvancedGesturesDetectors(Game game) =>
|
||||||
game is MultiTouchTapDetector ||
|
game is MultiTouchTapDetector ||
|
||||||
game is MultiTouchDragDetector ||
|
game is MultiTouchDragDetector ||
|
||||||
game is HasTappableComponents ||
|
game is HasTappables ||
|
||||||
game is HasDraggableComponents;
|
game is HasDraggables;
|
||||||
|
|
||||||
bool hasMouseDetectors(Game game) =>
|
bool hasMouseDetectors(Game game) =>
|
||||||
game is MouseMovementDetector ||
|
game is MouseMovementDetector ||
|
||||||
game is ScrollDetector ||
|
game is ScrollDetector ||
|
||||||
game is HasHoverableComponents;
|
game is HasHoverables;
|
||||||
|
|
||||||
Widget applyBasicGesturesDetectors(Game game, Widget child) {
|
Widget applyBasicGesturesDetectors(Game game, Widget child) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
@ -236,7 +236,7 @@ Widget applyAdvancedGesturesDetectors(Game game, Widget child) {
|
|||||||
instance.onTapCancel = game.onTapCancel;
|
instance.onTapCancel = game.onTapCancel;
|
||||||
instance.onTap = game.onTap;
|
instance.onTap = game.onTap;
|
||||||
});
|
});
|
||||||
} else if (game is HasTappableComponents) {
|
} else if (game is HasTappables) {
|
||||||
addAndConfigureRecognizer(
|
addAndConfigureRecognizer(
|
||||||
() => MultiTapGestureRecognizer(),
|
() => MultiTapGestureRecognizer(),
|
||||||
(MultiTapGestureRecognizer instance) {
|
(MultiTapGestureRecognizer instance) {
|
||||||
@ -257,7 +257,7 @@ Widget applyAdvancedGesturesDetectors(Game game, Widget child) {
|
|||||||
..onEnd = ((details) => game.onDragEnd(pointerId, details))
|
..onEnd = ((details) => game.onDragEnd(pointerId, details))
|
||||||
..onCancel = (() => game.onDragCancel(pointerId));
|
..onCancel = (() => game.onDragCancel(pointerId));
|
||||||
});
|
});
|
||||||
} else if (game is HasDraggableComponents) {
|
} else if (game is HasDraggables) {
|
||||||
addDragRecognizer(game, (int pointerId, DragStartInfo position) {
|
addDragRecognizer(game, (int pointerId, DragStartInfo position) {
|
||||||
game.onDragStart(pointerId, position);
|
game.onDragStart(pointerId, position);
|
||||||
return _DragEvent(game)
|
return _DragEvent(game)
|
||||||
@ -277,7 +277,7 @@ Widget applyAdvancedGesturesDetectors(Game game, Widget child) {
|
|||||||
Widget applyMouseDetectors(Game game, Widget child) {
|
Widget applyMouseDetectors(Game game, Widget child) {
|
||||||
final mouseMoveFn = game is MouseMovementDetector
|
final mouseMoveFn = game is MouseMovementDetector
|
||||||
? game.onMouseMove
|
? game.onMouseMove
|
||||||
: (game is HasHoverableComponents ? game.onMouseMove : null);
|
: (game is HasHoverables ? game.onMouseMove : null);
|
||||||
return Listener(
|
return Listener(
|
||||||
child: MouseRegion(
|
child: MouseRegion(
|
||||||
child: child,
|
child: child,
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import 'package:flame/game.dart';
|
|||||||
import 'package:flame_test/flame_test.dart';
|
import 'package:flame_test/flame_test.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
class _HasTappablesGame extends FlameGame with HasTappableComponents {}
|
class _HasTappablesGame extends FlameGame with HasTappables {}
|
||||||
|
|
||||||
class _MyTap extends PositionComponent with Tappable {
|
class _MyTap extends PositionComponent with Tappable {
|
||||||
late Vector2 gameSize;
|
late Vector2 gameSize;
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import 'package:flame_test/flame_test.dart';
|
|||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
class _GameHasDraggables extends FlameGame with HasDraggableComponents {}
|
class _GameHasDraggables extends FlameGame with HasDraggables {}
|
||||||
|
|
||||||
class _DraggableComponent extends PositionComponent with Draggable {
|
class _DraggableComponent extends PositionComponent with Draggable {
|
||||||
bool hasStartedDragging = false;
|
bool hasStartedDragging = false;
|
||||||
@ -33,7 +33,7 @@ void main() {
|
|||||||
(game) async {
|
(game) async {
|
||||||
const message =
|
const message =
|
||||||
'Draggable Components can only be added to a FlameGame with '
|
'Draggable Components can only be added to a FlameGame with '
|
||||||
'HasDraggableComponents';
|
'HasDraggables';
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
() => game.add(_DraggableComponent()),
|
() => game.add(_DraggableComponent()),
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import 'package:flame_test/flame_test.dart';
|
|||||||
import 'package:flutter/gestures.dart' show PointerHoverEvent;
|
import 'package:flutter/gestures.dart' show PointerHoverEvent;
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
class _GameWithHoverables extends FlameGame with HasHoverableComponents {}
|
class _GameWithHoverables extends FlameGame with HasHoverables {}
|
||||||
|
|
||||||
class _HoverableComponent extends PositionComponent with Hoverable {
|
class _HoverableComponent extends PositionComponent with Hoverable {
|
||||||
int enterCount = 0;
|
int enterCount = 0;
|
||||||
@ -57,7 +57,7 @@ void main() {
|
|||||||
(game) async {
|
(game) async {
|
||||||
const message =
|
const message =
|
||||||
'Hoverable Components can only be added to a FlameGame with '
|
'Hoverable Components can only be added to a FlameGame with '
|
||||||
'HasHoverableComponents';
|
'HasHoverables';
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
() => game.add(_HoverableComponent()),
|
() => game.add(_HoverableComponent()),
|
||||||
@ -201,7 +201,7 @@ void main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO(luan) we can probably provide some helpers to facilitate testing events
|
// TODO(luan) we can probably provide some helpers to facilitate testing events
|
||||||
void _triggerMouseMove(HasHoverableComponents game, double dx, double dy) {
|
void _triggerMouseMove(HasHoverables game, double dx, double dy) {
|
||||||
game.onMouseMove(
|
game.onMouseMove(
|
||||||
PointerHoverInfo.fromDetails(
|
PointerHoverInfo.fromDetails(
|
||||||
game,
|
game,
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import 'package:flame_test/flame_test.dart';
|
|||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
class _GameHasDraggables extends FlameGame with HasDraggableComponents {}
|
class _GameHasDraggables extends FlameGame with HasDraggables {}
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
final withDraggables = FlameTester(() => _GameHasDraggables());
|
final withDraggables = FlameTester(() => _GameHasDraggables());
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import 'package:flame/game.dart';
|
|||||||
import 'package:flame_test/flame_test.dart';
|
import 'package:flame_test/flame_test.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
class _GameWithTappables extends FlameGame with HasTappableComponents {}
|
class _GameWithTappables extends FlameGame with HasTappables {}
|
||||||
|
|
||||||
class _TappableComponent extends PositionComponent with Tappable {}
|
class _TappableComponent extends PositionComponent with Tappable {}
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ void main() {
|
|||||||
(game) async {
|
(game) async {
|
||||||
const message =
|
const message =
|
||||||
'Tappable Components can only be added to a FlameGame with '
|
'Tappable Components can only be added to a FlameGame with '
|
||||||
'HasTappableComponents';
|
'HasTappables';
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
() => game.add(_TappableComponent()),
|
() => game.add(_TappableComponent()),
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import 'package:flutter/widgets.dart';
|
|||||||
import 'package:flutter_test/flutter_test.dart' as flutter;
|
import 'package:flutter_test/flutter_test.dart' as flutter;
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
class _GameWithTappables extends FlameGame with HasTappableComponents {}
|
class _GameWithTappables extends FlameGame with HasTappables {}
|
||||||
|
|
||||||
class _MyTappableComponent extends _MyComponent with Tappable {
|
class _MyTappableComponent extends _MyComponent with Tappable {
|
||||||
bool tapped = false;
|
bool tapped = false;
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import 'package:forge2d/forge2d.dart';
|
|||||||
import 'balls.dart';
|
import 'balls.dart';
|
||||||
import 'boundaries.dart';
|
import 'boundaries.dart';
|
||||||
|
|
||||||
class CompositionSample extends Forge2DGame with HasTappableComponents {
|
class CompositionSample extends Forge2DGame with HasTappables {
|
||||||
static const info = '''
|
static const info = '''
|
||||||
This example shows how to compose a `BodyComponent` together with a normal Flame
|
This example shows how to compose a `BodyComponent` together with a normal Flame
|
||||||
component. Click the ball to see the number increment.
|
component. Click the ball to see the number increment.
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import 'package:forge2d/forge2d.dart';
|
|||||||
import 'balls.dart';
|
import 'balls.dart';
|
||||||
import 'boundaries.dart';
|
import 'boundaries.dart';
|
||||||
|
|
||||||
class DraggableSample extends Forge2DGame with HasDraggableComponents {
|
class DraggableSample extends Forge2DGame with HasDraggables {
|
||||||
DraggableSample() : super(gravity: Vector2.all(0.0));
|
DraggableSample() : super(gravity: Vector2.all(0.0));
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import 'package:forge2d/forge2d.dart';
|
|||||||
import 'balls.dart';
|
import 'balls.dart';
|
||||||
import 'boundaries.dart';
|
import 'boundaries.dart';
|
||||||
|
|
||||||
class TappableSample extends Forge2DGame with HasTappableComponents {
|
class TappableSample extends Forge2DGame with HasTappables {
|
||||||
TappableSample() : super(zoom: 20, gravity: Vector2(0, -10.0));
|
TappableSample() : super(zoom: 20, gravity: Vector2(0, -10.0));
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@ -29,7 +29,7 @@ class _MyAppState extends State<MyApp> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class RiveExampleGame extends FlameGame with HasTappableComponents {
|
class RiveExampleGame extends FlameGame with HasTappables {
|
||||||
@override
|
@override
|
||||||
Color backgroundColor() {
|
Color backgroundColor() {
|
||||||
return const Color(0xFFFFFFFF);
|
return const Color(0xFFFFFFFF);
|
||||||
|
|||||||
Reference in New Issue
Block a user