2016-02-20 5 views
0

В моей последней домашней работе они хотят, чтобы я закодировал игру, управляемую клавиатурой. Часть игры - нажать клавишу и удерживать ее.Как читать состояние клавиатуры в Smalltalk (Squeak) без задержек

Я использую метод keyDown для отслеживания событий клавиатуры. И то, что происходит, заключается в том, что после первого события (когда я читаю нажатие одной клавиши) происходит примерно половина секундной задержки, прежде чем начнутся другие символы. Такая же задержка, как если бы в текстовом поле вы держали «a», после первого символа есть промежуток в полсекунды.

Где я могу настроить это? Это действительно разрушает игру ...

ответ

3

Я не думаю, что это проблема с чтением состояния клавиатуры в Squeak (или любым языком программирования, если на то пошло), но проблема с тем, какие сигналы клавиатуры посылает операционная система ,

В Windows, вы хотите пойти в Control Panel>Keyboard>Speed вкладки и настройки "Repeat задержки" настройки:

Windows keyboard settings

В Linux, я думаю, вам нужно использовать xset или kbdrate. Я уверен, что есть что-то эквивалентное в Mac.

Сказав это, я не понимаю, почему вам нужно прочитать нажатия клавиш ОС. Разве вы не должны читать keyDown, а затем считаете, что этот ключ остается нажатым до тех пор, пока вы не получите событие keyUp? Я бы подумал, что вас интересует состояние клавиатуры, а не отдельные персонажи, «прибывающие».

+0

Отлично, я не знал о keyUp !!! Будет делать этот вечер. Спасибо! –