From 3c35d59b4a4ec064106d24a17e748005a20d9fde Mon Sep 17 00:00:00 2001 From: DevKage <33748002+ufrshubham@users.noreply.github.com> Date: Sat, 23 Mar 2024 21:31:46 +0530 Subject: [PATCH] fix: Null gravity override by Forge2dGame (#3092) `Forge2dGame` overrides the world's gravity even when a gravity vector is not provided to it. This causes the world to use the default gravity. --- packages/flame_forge2d/lib/forge2d_game.dart | 2 +- packages/flame_forge2d/test/forge2d_game_test.dart | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/flame_forge2d/lib/forge2d_game.dart b/packages/flame_forge2d/lib/forge2d_game.dart index 522ba4d7e57..70071c06c50 100644 --- a/packages/flame_forge2d/lib/forge2d_game.dart +++ b/packages/flame_forge2d/lib/forge2d_game.dart @@ -12,7 +12,7 @@ class Forge2DGame extends FlameGame { ContactListener? contactListener, double zoom = 10, }) : super( - world: ((world?..gravity = gravity) ?? + world: ((world?..gravity = gravity ?? world.gravity) ?? Forge2DWorld( gravity: gravity, contactListener: contactListener, diff --git a/packages/flame_forge2d/test/forge2d_game_test.dart b/packages/flame_forge2d/test/forge2d_game_test.dart index d140b2f697c..74a3e99576c 100644 --- a/packages/flame_forge2d/test/forge2d_game_test.dart +++ b/packages/flame_forge2d/test/forge2d_game_test.dart @@ -78,6 +78,12 @@ void main() { game.camera.viewfinder.zoom, ); }); + + test("Game does not override World's gravity with null", () { + final game = Forge2DGame(world: Forge2DWorld(gravity: Vector2(10, 0))); + expect(game.world.gravity.x, 10); + expect(game.world.gravity.y, 0); + }); }, ); }