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

时间:2013-12-27 02:34:55

标签: c# xna 2d collision

所以我需要一些帮助我的C#XNA自上而下的2D“波生成”游戏。基本上,我有一个玩家,它具有向波浪中产生的敌人射击激光的功能。我现在正在修复的问题是我的敌人碰撞代码与固定的非旋转墙(矩形)

我需要检测敌人撞到矩形的哪一侧,这样他才能正确地绕过矩形和玩家。 (例如:如果敌人从墙的右侧被阻挡,向上移动直到他可以绕过墙壁)

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

// 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度一样,我将从左侧或类似的角度击中。

如果这不起作用,有人可以帮我找到另一种方法吗?

谢谢,

约翰

0 个答案:

没有答案