From 4af00c1a85157e5593fe5694294c47f47fe5d16c Mon Sep 17 00:00:00 2001 From: Erick Date: Fri, 9 Aug 2024 13:35:31 -0300 Subject: [PATCH] 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 --- .../lib/stories/system/resize_example.dart | 30 +++++++++++++++++++ examples/lib/stories/system/system.dart | 7 +++++ 2 files changed, 37 insertions(+) create mode 100644 examples/lib/stories/system/resize_example.dart 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, ); }