diff --git a/Engine.Physics2D/CollisionDetector.cs b/Engine.Physics2D/CollisionDetector.cs index 648f9e9..8829d57 100644 --- a/Engine.Physics2D/CollisionDetector.cs +++ b/Engine.Physics2D/CollisionDetector.cs @@ -50,15 +50,15 @@ public class CollisionDetector : ICollisionDetector collisionInformation = default; Vector2D leftToRightCenter = left.CircleWorld.Center.FromTo(right.CircleWorld.Center); - float distanceCircleCenterSquared = leftToRightCenter.MagnitudeSquared; - float radiusSumSquared = left.CircleWorld.RadiusSquared + right.CircleWorld.RadiusSquared; + float distanceCircleCenter = leftToRightCenter.Magnitude; + float radiusSum = left.CircleWorld.Radius + right.CircleWorld.Radius; - float circleSurfaceDistanceSquared = distanceCircleCenterSquared - radiusSumSquared; + float circleSurfaceDistance = distanceCircleCenter - radiusSum; - bool collision = circleSurfaceDistanceSquared <= 0f; + bool collision = circleSurfaceDistance <= 0f; if (collision) - collisionInformation = new(left, right, leftToRightCenter.Normalized, Math.Sqrt(circleSurfaceDistanceSquared)); + collisionInformation = new(left, right, leftToRightCenter.Normalized, -circleSurfaceDistance); return collision; }