Войти
IrrlichtФорум

Не срабатывает отпускание клавишы.

#0
16:28, 12 окт 2009

Работают все кнопки нажатия.
А вот отпускание не работает ТОЛЬКО 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

Какие варианты?

#1
16:37, 12 окт 2009

Ой братцы!
Как всегда пока не запостиш проблему сам ответ не найдешь!

Оказывается проверку отпускания надо делать

event.KeyInput.Key==KEY_SHIFT

НО ТОЛЬКО ОТПУСКАНИЯ!
Нажатия все так же.

#2
13:10, 18 фев 2010

кстати в своей проге я не обрабатываю отпускание, просто перед проверкой на нажатие сбрасываю все на false

#3
10:34, 23 фев 2010

еще бы посоветовал сделать так

if (event.KeyInput.PressedDown == true)
{
  ....
  //обработка отпускания клавиш
}else if(event.KeyInput.PressedDown == false)
{
  ....
};
IrrlichtФорум

Тема в архиве.