GLUT鼠标按钮向下
问题描述:
只要按住鼠标右键,我想放大对象。现在的问题是每次我想放大时都必须点击它。有没有办法修改我的代码,以便在按住按钮的同时缩放它,而不是点击它?GLUT鼠标按钮向下
void mouse(int button, int state, int x, int y)
{
// Save the left button state
if (button == GLUT_LEFT_BUTTON)
{
leftMouseButtonDown = (state == GLUT_DOWN);
zMovement += 0.1f;
}
else if (button == GLUT_RIGHT_BUTTON)
{
leftMouseButtonDown = (state == GLUT_DOWN);
zMovement -= 0.1f;
}
// Save the mouse position
mouseXPos = x;
mouseYPos = y;
}
答
你的函数的状态变量告诉你什么类型的鼠标按钮的事件发生了:它可以是GLUT_DOWN或GLUT_UP。
了解了这一点,只要状态设置为true(这必须在每个帧的某个位置完成),就可以将此状态存储在鼠标功能外的额外变量中并进行缩放。该代码可能看起来像下面这样:
void mouse(int button, int state, int x, int y)
{
// Save the left button state
if (button == GLUT_LEFT_BUTTON)
{
leftMouseButtonDown = (state == GLUT_DOWN);
}
else if (button == GLUT_RIGHT_BUTTON)
{
// \/ right MouseButton
rightMouseButtonDown = (state == GLUT_DOWN);
}
// Save the mouse position
mouseXPos = x;
mouseYPos = y;
}
void callThisInEveryFrame()
{
if (leftMouseButtonDown)
zMovement += 0.1f;
if (rightMouseButtonDown)
zMovement -= 0.1f;
}
阿其如此明显,当你拼出来一样,(感谢变量提醒过:P)这工作太好了,谢谢 – user2757842 2014-12-03 16:08:00