2016-09-18 6 views
1

키를 사용하여 키 업과 키 다운 이벤트를 수집하는 몇 가지 기본 코드가 있습니다.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

문제는 자동 반복 키가 켜져 있다는 것입니다. https://linux.die.net/man/3/glutsetkeyrepeat

+1

완벽한 :에서

glutSetKeyRepeat(GLUT_KEY_REPEAT_OFF); 

남자 페이지 : 귀하의 초기화 단계에서, 단지 넣어,이 명령을을 해제합니다. 대접 했어요! 감사합니다 – Beakie

+0

(수정 버전으로 변경). 다시 한 번 감사드립니다. – Beakie