Stuck in wall bug (#5)

* Created a GetCollisionSide method.

* Bug Fixed and Tested

Co-authored-by: jme9 <jme9@pdx.edu>
This commit is contained in:
J. M. Ellis
2025-05-17 18:55:17 -07:00
committed by GitHub
parent 218f4da157
commit b9b339d51c
5 changed files with 90 additions and 19 deletions
+36 -2
View File
@@ -33,13 +33,47 @@ namespace LunaLightXMG
}
// Method to check if a position is colliding with any wall
public static bool WallCheck(Vector2 position, BoundingBox boundingBox, Platform[] platforms)
public static bool WallCheck(Vector2 position, BoundingBox boundingBox, Platform[] platform)
{
if (IsColliding(position + new Vector2(1, 0), boundingBox, platforms) || IsColliding(position + new Vector2(-1, 0), boundingBox, platforms))
if (IsColliding(position + new Vector2(1, 0), boundingBox, platform) || IsColliding(position + new Vector2(-1, 0), boundingBox, platform))
{
return true;
}
return false;
}
// Method to get the collision side
public enum CollisionSide
{
None,
Top,
Bottom,
Left,
Right
}
public static CollisionSide GetCollisionSide(Vector2 position, BoundingBox boundingBox, Platform[] platform)
{
if (IsColliding(position + new Vector2(-1, 0), boundingBox, platform))
{
return CollisionSide.Left;
}
else if (IsColliding(position + new Vector2(1, 0), boundingBox, platform))
{
return CollisionSide.Right;
}
else if (IsColliding(position + new Vector2(0, -1), boundingBox, platform))
{
return CollisionSide.Top;
}
else if (IsColliding(position + new Vector2(0, 1), boundingBox, platform))
{
return CollisionSide.Bottom;
}
else
{
return CollisionSide.None;
}
}
}
}