2016-09-18 8 views
1

glutを使用してキーアップイベントとキーダウンイベントを収集するための基本的なコードがあります。glut - キーを押し下げる

キーを押したままにすると、意図したダウンの代わりに(ダウン/アップ/ダウン/アップ/ダウン/アップ/ ........)継続的なイベントが発生します)とアップ(一度、最後に)

#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 << "render\n"; 
} 

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

すべての入力をいただければ幸いです。 ありがとう

答えて

2

問題は、自動繰り返しキーがオンになっていることです。あなたの初期の段階で、ちょうど入れ、このコマンドを、それをオフにするには:

glutSetKeyRepeat(GLUT_KEY_REPEAT_OFF); 

マンページで:https://linux.die.net/man/3/glutsetkeyrepeat

+1

パーフェクト。治療に取り組んだ!ありがとう – Beakie

+0

(編集版に変更)再度、感謝します – Beakie

関連する問題