1
我的问题是当我的鼠标在屏幕中时,屏幕将不再旋转。只有当应用程序不再处于活动状态时。glutWarpPointer在应用程序处于活动状态时不工作
(视频显示发生了什么:http://youtu.be/h5Sg3nQoWKs)
,如果我拿出这些经指针然后它开始再次合作。
这里是我的鼠标更新:
mouse.x = x;
mouse.y = y;
if (x > screen.x/2)
{
player.angle -= 0.05f;
player.lx = sin(player.angle);
player.lz = -cos(player.angle);
glutWarpPointer(screen.x/2,screen.y/2);
}
else if (x < screen.x/2)
{
player.angle += 0.05f;
//if (player.vertAngle < 0)
//player.vertAngle = 0;
player.lx = sin(player.angle);
player.lz = -cos(player.angle);
glutWarpPointer(screen.x/2,screen.y/2);
}
if (y < screen.y/2)
{
player.vertAngle += 0.05f;
player.ly = sin(player.vertAngle);
glutWarpPointer(screen.x/2,screen.y/2);
}
else if (y > screen.y/2)
{
player.vertAngle -= 0.05f;
//if (player.vertAngle > 360)
//player.vertAngle = 360;
player.ly = sin(player.vertAngle);
glutWarpPointer(screen.x/2,screen.y/2);
}
这可能没有帮助,但是,而是一个更好的方式做你的播放器旋转是'player.angle = x - screen.x/2'。这样比较好,因为你现在拥有它的方式,不管鼠标移动1个像素还是100个像素,你的播放器总是变成相同的数量。这解决了这个问题。 – BWG