跟随对象的对象

时间:2011-12-28 23:09:55

标签: c++ artificial-intelligence

我想实现一个函数,其中一个对象跟随C ++中的移动对象。任何提示如何做到这一点将对我有很大帮助。

3 个答案:

答案 0 :(得分:0)

这实际上取决于运动应该如何发生。得到一个共同的答案是不可能的。对于具有固定节点的地图(或像网格一样的简单棋盘),请使用路径寻找算法,例如A *。

对于开放/自由移动,您很可能希望将对象(或其运动矢量)转向目标,然后加速/减速。

但如果没有进一步的细节,就不可能给出任何完美的答案。

答案 1 :(得分:0)

这篇优秀的帖子说明了,我引用它:

  

玩家的位置是point1。敌人的位置是第2点。第一   你需要找到x1和x2以及y1和y2之间的差异   (我将这些称为xd和yd)。然后你可以得到之间的角度   通过做theta = atan(yd / xd)得到两点。现在你应该能够得到   使用角度和新的x和y(我将称之为x3和y3)   你想要旅行的距离x3 =(d)(cos(theta))和y3 =   (d)(SIN(THETA))。将敌人移动到(x3,y3)。

     

d是每次更新时敌人移动的速度。你可能不得不搞砸   有迹象表明方向是正确的(即如果敌人进入   正确的x方向但错误的y方向然后更改登录   Y)。

更多信息:Game enemy move towards player

答案 2 :(得分:0)

仅使用x和y,这是一个非常简单的向量问题。

使用单位矢量作为方向。将此乘以标量,表示您希望跟随者在一个单位时间内行进的距离。这将为您提供新的相对位置。单位矢量应该是从跟随者指向领导者的方向。