我的3D游戏中有一个摄像头。我有一个起始矢量和结束矢量用于定位。我想将它从第一个向量平滑移动到结束向量。
这样做的最佳方式是什么?
答案 0 :(得分:0)
你必须这样做:StartVector + EndVector * StepValue
现在,你必须决定你要遵循的步骤(StepValue),当然你必须把它放在计时器中以控制速度。
答案 1 :(得分:0)
你需要决定你想拥有什么样的动作 - 你想让它以线性速度到达那里,还是想要平滑?
如果我们谈论逐帧移动,我喜欢使用阻尼机制(psuedo-code!):
NewPos = CurrentPos + (TargetPos - CurrentPos) * 0.8f;
如果你想在一定时间内以固定的费率进行,你会在每一帧做这样的事情:
NewPos = CurrentPos + ((TargetPos - StartPos) / (DesiredTime * FrameRate));
当然,您只想进行一次计算,将结果存储在另一个向量中,然后将其添加到每个帧的位置。