Тёмная тема
Работают все кнопки нажатия.
А вот отпускание не работает ТОЛЬКО SHIFT!
Нажатие срабатывает а отпускание нет.
вот код но с ним вроде все в порядке
//Обработка нажатия клавиши if (event.KeyInput.PressedDown == true) { if (event.KeyInput.Key==KEY_KEY_A) left=true; if (event.KeyInput.Key==KEY_KEY_D) right=true; if (event.KeyInput.Key==KEY_KEY_W) down=true; if (event.KeyInput.Key==KEY_KEY_S) up=true; if (event.KeyInput.Key==KEY_CONTROL) { SpeedDown=true; printf("SpeedDown=true \n"); return false; } if (event.KeyInput.Key==KEY_LSHIFT || event.KeyInput.Key == KEY_RSHIFT) { SpeedUP=true; printf("SpeedUP=true \n"); return false; } } //обработка отпускания клавиш if(event.KeyInput.PressedDown == false) { if (event.KeyInput.Key==KEY_KEY_W) down=false; if (event.KeyInput.Key==KEY_KEY_S) up=false; if (event.KeyInput.Key==KEY_KEY_A) left=false; if (event.KeyInput.Key==KEY_KEY_D) right=false; if (event.KeyInput.Key==KEY_CONTROL) { SpeedDown=false; printf("SpeedDown=false \n"); return false; } if (event.KeyInput.Key==KEY_LSHIFT || event.KeyInput.Key == KEY_RSHIFT) { SpeedUP=false; printf("SpeedUP=false \n"); return false; } }
Клава KBS-8 Ирлихт 6.0
Какие варианты?
Ой братцы!
Как всегда пока не запостиш проблему сам ответ не найдешь!
Оказывается проверку отпускания надо делать
event.KeyInput.Key==KEY_SHIFT
НО ТОЛЬКО ОТПУСКАНИЯ!
Нажатия все так же.
кстати в своей проге я не обрабатываю отпускание, просто перед проверкой на нажатие сбрасываю все на false
еще бы посоветовал сделать так
if (event.KeyInput.PressedDown == true) { .... //обработка отпускания клавиш }else if( event.KeyInput.PressedDown == false) { .... };
Тема в архиве.