过剩-按住一个键



我有一些使用glut收集上键和下键事件的基本代码。

如果我按住一个键,我得到连续的事件发射(down/up/down/up/up/up/........),而不是预期的down(一次,在开始时)和up(一次,在结束时)

#include <GL/glut.h>
#include <iostream>
void keyDown (unsigned char key, int x, int y)
{
    std::cout << "keydown " << key << "n";
}
void keyUp (unsigned char key, int x, int y)
{
    std::cout << "keyup " << key << "n";
}
void render(void)
{
    std::cout << "rendern";
}
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE);
    glutInitWindowSize(300, 300);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("Hello world :D");
    glutDisplayFunc(render);
    glutKeyboardFunc(keyDown);
    glutKeyboardUpFunc(keyUp);
    glutMainLoop();
    return 0;
}

感谢任何输入。由于

您的问题是自动重复键是打开的。要关闭它,只需在初始化阶段输入以下命令:

glutSetKeyRepeat(GLUT_KEY_REPEAT_OFF);

手册页:https://linux.die.net/man/3/glutsetkeyrepeat

相关内容

  • 没有找到相关文章

最新更新