From c35fb460781cca99e3be9dc6ab25447f10db4791 Mon Sep 17 00:00:00 2001 From: Lukas Klingsbo Date: Sun, 5 Dec 2021 20:38:52 +0100 Subject: [PATCH] Fix hitbox circle on flip (#1165) --- .../lib/stories/collision_detection/circles_example.dart | 5 ++--- packages/flame/CHANGELOG.md | 1 + packages/flame/lib/src/geometry/circle.dart | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/lib/stories/collision_detection/circles_example.dart b/examples/lib/stories/collision_detection/circles_example.dart index dd31446c5..8966e1700 100644 --- a/examples/lib/stories/collision_detection/circles_example.dart +++ b/examples/lib/stories/collision_detection/circles_example.dart @@ -39,13 +39,12 @@ class MyCollidable extends PositionComponent position: position, size: Vector2.all(100), anchor: Anchor.center, - ) { - addHitbox(HitboxCircle()); - } + ); @override Future onLoad() async { await super.onLoad(); + addHitbox(HitboxCircle()); final center = gameRef.size / 2; velocity = (center - position)..scaleTo(150); } diff --git a/packages/flame/CHANGELOG.md b/packages/flame/CHANGELOG.md index 396814cba..8ea9e2e08 100644 --- a/packages/flame/CHANGELOG.md +++ b/packages/flame/CHANGELOG.md @@ -10,6 +10,7 @@ - Fix `Parallax.load` with different loading times - Fix render order of components and add tests - `isHud` renamed to `respectCamera` + - Fix `HitboxCircle` when component is flipped ## [1.0.0-releasecandidate.18] - Forcing portrait and landscape mode is now supported on web diff --git a/packages/flame/lib/src/geometry/circle.dart b/packages/flame/lib/src/geometry/circle.dart index d91742c7a..325fee977 100644 --- a/packages/flame/lib/src/geometry/circle.dart +++ b/packages/flame/lib/src/geometry/circle.dart @@ -43,7 +43,8 @@ class Circle extends Shape { _scaledSize ..setFrom(size) ..multiply(scale); - return (min(_scaledSize.x, _scaledSize.y) / 2) * normalizedRadius; + return (min(_scaledSize.x.abs(), _scaledSize.y.abs()) / 2) * + normalizedRadius; } /// This render method doesn't rotate the canvas according to angle since a