宾语后跟宾语

Object that follows object

本文关键字:宾语      更新时间:2023-10-16

我想在c++中实现一个对象跟随一个移动对象的函数。任何关于如何做到这一点的建议都会对我有很大的帮助。

这个优秀的帖子说,我引用它:

玩家的位置是point1。敌人的位置是2号点。第一个你需要找出x1和x2和y1和y2之间的差(我称它们为xd和yd)。然后你就能得到通过= atan(yd/xd)得到两个点。现在你应该可以得到新的x和y(我称之为x3和y3)通过使用角度和要移动的距离x3 = (d)(cos) y3 =(d) (sin(θ))。移动敌人到(x3, y3)

d是每次更新时敌人移动的速度。你可能会搞砸有了指示方向的标志(游戏邦注:如敌人移动时)正确的x方向,但错误的y方向,然后改变符号y) .

更多提示:游戏敌人向玩家移动

这取决于移动应该如何发生。要得到一个共同的答案是不可能的。对于具有固定节点的地图(或简单的棋盘,如网格),使用寻路算法,如a *.

对于开放/自由移动,你最有可能想要将你的对象(或它的运动矢量)转向目标,然后加速/减速它。

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

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

使用单位矢量表示方向。将其乘以一个标量,表示您希望跟随者在一个单位时间内移动的距离。这将给出你新的相对位置。单位矢量应该在从跟随者指向领导者的方向上。