feat: Adding on game resize example (#3260)

Simple example to test the `onGameResize` lifecycle method.


https://github.com/user-attachments/assets/e0a874e9-f1f8-4fc3-b9bd-11a726a22794
This commit is contained in:
Erick
2024-08-09 13:35:31 -03:00
committed by GitHub
parent bf9a2481fb
commit 4af00c1a85
2 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,30 @@
import 'dart:ui';
import 'package:flame/components.dart';
import 'package:flame/game.dart';
class ResizingRectangle extends RectangleComponent {
ResizingRectangle()
: super(
paint: Paint()..color = const Color(0xFFFE4813),
);
@override
void onGameResize(Vector2 size) {
super.onGameResize(size);
this.size = size * .4;
}
}
class ResizeExampleGame extends FlameGame {
ResizeExampleGame() : super(children: [ResizingRectangle()]);
static const description = '''
This example shows how to react to the game being resized.
The rectangle will always be 40% of the screen size.
Try resizing the window and see the rectangle change its size.
''';
}

View File

@ -2,6 +2,7 @@ import 'package:dashbook/dashbook.dart';
import 'package:examples/commons/commons.dart';
import 'package:examples/stories/system/overlays_example.dart';
import 'package:examples/stories/system/pause_resume_example.dart';
import 'package:examples/stories/system/resize_example.dart';
import 'package:examples/stories/system/step_engine_example.dart';
import 'package:examples/stories/system/without_flame_game_example.dart';
import 'package:flame/game.dart';
@ -31,5 +32,11 @@ void addSystemStories(Dashbook dashbook) {
(_) => GameWidget(game: StepEngineExample()),
codeLink: baseLink('system/step_engine_game.dart'),
info: StepEngineExample.description,
)
..add(
'On Game Resize',
(_) => GameWidget(game: ResizeExampleGame()),
codeLink: baseLink('system/resize_example.dart'),
info: ResizeExampleGame.description,
);
}