Unify examples structure (#1118)

* Animations, CameraAndViewport, CollisionDetection and Components unified

* Added descriptions to effects

* Rename input games

* Unify input stories

* Add info to parallax section

* Added descriptions to the rendering examples

* Add descriptions to the sprites directory

* Fix utils and rendering section

* Add descriptions to the widgets section

* Delete directory that rebase brought back

* Unify game names

* Added some styleguide docs for examples

* Fix analyze issues

* All files should have _example as suffix

* Made the FollowComponentExample a bit easier to understand

* Change priority of ember
This commit is contained in:
Lukas Klingsbo
2021-11-19 14:28:04 +01:00
committed by GitHub
parent 904481d289
commit 8b132d7c0b
90 changed files with 1574 additions and 1140 deletions

View File

@ -0,0 +1,72 @@
import 'package:flame/components.dart';
import 'package:flame/game.dart';
import 'package:flame/input.dart';
// This class only has `HasDraggables` since the game-in-game example moves a
// draggable component to this game.
class ComposabilityExample extends FlameGame with HasDraggables {
static const String description = '''
In this example we showcase how you can add children to a component and how
they transform together with their parent, if the parent is a
`PositionComponent`. This example is not interactive.
''';
late ParentSquare parentSquare;
@override
bool debugMode = true;
@override
Future<void> onLoad() async {
await super.onLoad();
parentSquare = ParentSquare(Vector2.all(200), Vector2.all(300))
..anchor = Anchor.center;
add(parentSquare);
}
@override
void update(double dt) {
super.update(dt);
parentSquare.angle += dt;
}
}
class ParentSquare extends RectangleComponent with HasGameRef {
ParentSquare(Vector2 position, Vector2 size)
: super(position: position, size: size);
@override
Future<void> onLoad() async {
super.onLoad();
createChildren();
}
void createChildren() {
// All positions here are in relation to the parent's position
const childSize = 50.0;
final children = [
RectangleComponent.square(
position: Vector2(100, 100),
size: childSize,
angle: 2,
),
RectangleComponent.square(
position: Vector2(160, 100),
size: childSize,
angle: 3,
),
RectangleComponent.square(
position: Vector2(170, 150),
size: childSize,
angle: 4,
),
RectangleComponent.square(
position: Vector2(70, 200),
size: childSize,
angle: 5,
),
];
addAll(children);
}
}