所以我需要一些帮助我的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度一样,我将从左侧或类似的角度击中。
如果这不起作用,有人可以帮我找到另一种方法吗?
谢谢,
约翰