diff --git a/examples/lib/stories/system/resize_example.dart b/examples/lib/stories/system/resize_example.dart new file mode 100644 index 000000000..3c12b69a8 --- /dev/null +++ b/examples/lib/stories/system/resize_example.dart @@ -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. + '''; +} diff --git a/examples/lib/stories/system/system.dart b/examples/lib/stories/system/system.dart index 7435efa05..ab4f52c16 100644 --- a/examples/lib/stories/system/system.dart +++ b/examples/lib/stories/system/system.dart @@ -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, ); }