移动相机

时间:2011-11-17 00:20:19

标签: vb.net

我的3D游戏中有一个摄像头。我有一个起始矢量和结束矢量用于定位。我想将它从第一个向量平滑移动到结束向量。

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

你必须这样做:StartVector + EndVector * StepValue

现在,你必须决定你要遵循的步骤(StepValue),当然你必须把它放在计时器中以控制速度。

答案 1 :(得分:0)

你需要决定你想拥有什么样的动作 - 你想让它以线性速度到达那里,还是想要平滑?

如果我们谈论逐帧移动,我喜欢使用阻尼机制(psuedo-code!):

NewPos = CurrentPos + (TargetPos - CurrentPos) * 0.8f;

如果你想在一定时间内以固定的费率进行,你会在每一帧做这样的事情:

NewPos = CurrentPos + ((TargetPos - StartPos) / (DesiredTime * FrameRate));

当然,您只想进行一次计算,将结果存储在另一个向量中,然后将其添加到每个帧的位置。