如何确定对象是否在XNA中的其他两个对象之间

时间:2013-12-04 23:36:09

标签: c# xna collision

我的屏幕上装满了圆圈。一个圈是玩家,一个是敌人,其他是障碍物。我希望敌人能够计算从玩家到敌人的直线路径中是否存在障碍物,因此它可以相应地进行调整(它发生在太空中,因此它是从小行星到小行星)。

现在,当AI被卡在小行星上时,我只是随机转向。

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案是找到玩家和敌人之间的Vector2(使用Vector2.Subtract),然后将其划分为较小的向量或将其缩小为您选择的增量。这可以通过标准化距离矢量并将其乘以固定数来完成 然后只需将该delta添加到敌人位置并检查新位置是否与对象发生碰撞(可能使用Rectangle.Contains方法),并执行此操作直到您到达玩家。