【发布时间】:2013-02-19 12:21:35
【问题描述】:
我为相机写了一个鼠标函数。 它运作良好。但唯一的问题是一开始,当我第一次用鼠标移动时,它会向左上方跳跃,然后效果很好。我不明白为什么会这样。
这里是鼠标功能。
float lastx = 0.0;
float lasty = 0.0;
void mouseMovement(int x, int y)
{
lastx = (float)x - lastx;
lasty = (float)y - lasty;
if((float)x > lastx)
Camera.RotateY((-lastx)*0.01);
else
Camera.RotateY(lastx*0.01);
if((float)y > lasty)
Camera.RotateX(lasty*0.01);
else
Camera.RotateX(-lasty*0.01);
lastx = (float)x;
lasty = (float)y;
Display();
}
【问题讨论】:
-
只是猜测...lastx 和 lasty 没有初始化为任何有意义的值,因此第一次调用 mouseMovement 时会以两个随机减法开始。