KeyPress и KeyRelease, Реализация игровых клавиш (WASD) |
Здравствуйте, гость ( Вход | Регистрация )
KeyPress и KeyRelease, Реализация игровых клавиш (WASD) |
AlexSMG95 |
12.10.2014, 13:00
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 12.10.2014 Пользователь №: 4246 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем доброго времени суток.
Вообщем нужно реализовать отслеживание клавиш WASD как в играх, только в зависимости от нажатых клавиш должен формироваться массив из 4 значений принимающих 1 или 0 , Раскрывающийся текст то есть зажал w получил массив 1000, зажал s получил 0100, зажал a получил 0010, зажал d получил 0001. w+a - 1010 w+d - 1001 s+a - 0110 s+d - 0101 посоветовали использовать keypress и keyrelease набросал такой код Раскрывающийся текст
И столкнулся с проблемой на форме клавиши определяются правильно и массив тоже формируется правильно, но при отправки данных в порт (если важно TCP порт) то получается при зажатии W получаю такую картину сигналов Раскрывающийся текст 1000 0000 1000 0000 зажал W+A получаю следующее Раскрывающийся текст 1010 1000 1010 1000 И дальше в таком духе! Подскажите где ошибка! Заранее благодарю! |
|
|
lanz |
12.10.2014, 15:57
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Это происходит из за автоповтора.
События, сгенерированные автоповтором можно отделить по флагу isAutoRepeat http://qt-project.org/doc/qt-4.8/qkeyevent.html#isAutoRepeat |
|
|
AlexSMG95 |
12.10.2014, 17:29
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 12.10.2014 Пользователь №: 4246 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо!
Если не затруднит приведите пожалуйста пример как использовать данное свойство, а то с английским у меня туговато! |
|
|
lanz |
13.10.2014, 0:05
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
|
|
|
AlexSMG95 |
13.10.2014, 9:20
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 12.10.2014 Пользователь №: 4246 Спасибо сказали: 0 раз(а) Репутация: 0 |
Благодарю! И еще последний вопрос, если я правильно понял "isAutoRepeat" возвращает всем булеан значениям false, и получается использовать keyRelease не нужно? |
|
|
AlexSMG95 |
13.10.2014, 11:13
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 12.10.2014 Пользователь №: 4246 Спасибо сказали: 0 раз(а) Репутация: 0 |
Благодарю! И еще последний вопрос, если я правильно понял "isAutoRepeat" возвращает всем булеан значениям false, и получается использовать keyRelease не нужно? Все вопрос снят! Большое спасибо! В итоге сделал так
|
|
|
Текстовая версия | Сейчас: 29.3.2024, 2:45 |