2014-12-07 3 views
0

У меня есть объект, который я пытаюсь перевести с помощью ввода пользовательской клавиатуры. При анимации объекта для автоматического перемещения у меня нет проблем с плавным перемещением объекта. Однако всякий раз, когда я пытаюсь добавить контролируемое пользователем движение, я не знаю, как управлять трансляцией объекта постоянно, а не прыгать по пятнам позиции объекта. Например:Плавно контролируемое движение клавиатуры OpenGL

Display(){ 
    gl.glPushMatrix(); 
    gl.glTranslated(x,y,z); 
    drawObject(gl); 
    gl.glPopMatrix(); 
} 

KeyPressed(KeyEvent e){ 
    char key = e.getKeyChar(); 
    if (key == w){ 
     x++; 
    } 
} 

В приведенном выше всякий раз, когда я нажимаю «ж» код, вместо того, чтобы постоянно переводить свой объект в направлении х, он будет двигаться только одно место каждый раз, когда пользователь нажимает клавишу «W» на основе любой значение x будет. Что мне нужно сделать, чтобы нажимать на клавиатуру, чтобы постоянно переводить объект на определенную сумму, пока удерживается кнопка?

ответ

0

Когда пользователь деактивирует или нажимает клавишу, повторно установите флажок «В данный момент нажата клавиша». В цикле анимации проверьте этот флаг и, если он установлен, примените анимацию движения.

Смежные вопросы