我们有一个目标,它位于关卡中的某个位置,以及一个可以移动并可以瞄准任何地方的玩家。 现在我们想要计算玩家AIM和目标之间的距离。
球员与目标的距离有多远? - 如果此值接近' 0'我们知道玩家的目标是瞄准目标。 我们想知道这一点,因为我们喜欢计算玩家离开的距离,当他们开枪时。
我们拥有以下信息:
答案 0 :(得分:0)
因此,您将距离定义为空间中目标点与目标线之间的距离。请注意,您还可以将距离定义为连接玩家和目标的线与目标线之间的角度。
幸运的是,这很简单:
点b是Target
到行aim
的预制投影:
t = Target - Player
i = max(a*t/a*a, 0) (so we won't report false distances when the target is behind)
B = Player + a * i
distance = dist(B, Target) = len(B - Target)
您可以使用以下公式从俯仰和偏航计算向量a
:
a_x = cos(pitch) * cos(yaw)
a_y = sin(pitch)
a_z = cos(pitch) * sin(yaw)