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; 
} 
+0

阿其如此明显,当你拼出来一样,(感谢变量提醒过:P)这工作太好了,谢谢 – user2757842 2014-12-03 16:08:00