C# 两个矩形之间的定向碰撞检测

C# 两个矩形之间的定向碰撞检测,c#,xna,2d,collision,C#,Xna,2d,Collision,所以我需要一些关于我的C#XNA自上而下2D“wave Sparn”游戏的帮助。基本上,我有一个玩家,它可以用激光射向在波浪中繁殖的敌人。我现在要解决的问题是我的敌人与静止非旋转墙(矩形)的碰撞代码 我需要检测敌人击中长方形的哪一侧,以便他能够正确绕过长方形并接近玩家。(例如:如果敌人从墙的右侧被阻挡,则向上移动,直到他能够绕过墙) 以下是我必须检测碰撞时敌人和固定墙之间角度的代码: // I am blocked, find angle to find which side I'm block

所以我需要一些关于我的C#XNA自上而下2D“wave Sparn”游戏的帮助。基本上,我有一个玩家,它可以用激光射向在波浪中繁殖的敌人。我现在要解决的问题是我的敌人静止非旋转墙(矩形)的碰撞代码

我需要检测敌人击中长方形的哪一侧,以便他能够正确绕过长方形并接近玩家。(例如:如果敌人从墙的右侧被阻挡,则向上移动,直到他能够绕过墙)

以下是我必须检测碰撞时敌人和固定墙之间角度的代码:

// I am blocked, find angle to find which side I'm blocked from
centerOfWall = wall.CenterOfWall;
Vector2 difference = centerOfWall - centerOfEnemy;
// Getting the angle of intersection between the two rectangles!
angle = Math.Atan2(difference.X, difference.Y);
// Converting angle to degrees!
degrees = angle * (180 / MathHelper.Pi);
我想我要问的是,有了这个角度,我能找到敌人撞墙的那一边吗?比如,如果角度小于90度但大于0度,我会从左边击球或者类似的东西

如果这样不行,有人能帮我找到另一种可行的方法吗

谢谢


约翰

这个问题有一个可能的答案:谢谢,我会试试的!史蒂夫,谢谢你告诉我这个答案,结果很好!