using Microsoft.Xna.Framework; namespace LunaLightXMG { public class CollisionManager { // Method to check if a position is colliding with any platform public static bool IsColliding(Vector2 newPosition, BoundingBox boundingBox, Platform[] platforms) { Rectangle newBounds = new Rectangle((int)newPosition.X, (int)newPosition.Y, boundingBox.Bounds.Width, boundingBox.Bounds.Height); foreach (var platform in platforms) { if (newBounds.Intersects(platform.BoundingBox.Bounds)) { return true; } } return false; } // Method to check if a position is colliding with any platform and return the colliding platform public static Platform GetCollidingPlatform(Vector2 newPosition, BoundingBox boundingBox, Platform[] platforms) { Rectangle newBounds = new Rectangle((int)newPosition.X, (int)newPosition.Y, boundingBox.Bounds.Width, boundingBox.Bounds.Height); foreach (var platform in platforms) { if (newBounds.Intersects(platform.BoundingBox.Bounds)) { return platform; } } return null; } // Method to check if a position is colliding with any wall public static bool WallCheck(Vector2 position, BoundingBox boundingBox, Platform[] platforms) { if (IsColliding(position + new Vector2(1, 0), boundingBox, platforms) || IsColliding(position + new Vector2(-1, 0), boundingBox, platforms)) { return true; } return false; } } }