Меню Закрыть

Задержка нажатия клавиш на клавиатуре

Всем привет. Пишу 2d игрушку на html5. Подскажите, как убрать задержку клавиатуры после первого нажатия клавиши (при движении игрока)? В Win7 есть в настройках клавиатуры "Задержка перед началом повтора", но ведь это не то, что я должен менять. Наверное, как-то можно это задать в самой html5 игре?

Заранее спасибо за ответ.

  • Вопрос задан более года назад
  • 287 просмотров

Если игрок управляет дискретным курсором или маркером, например, в сапёре или пасьянсе (если те играются с клавиатуры, разумеется) — так и надо, нужен системный автоповтор клавиш.

Если игрок управляет непрерывно движущимся персонажем, надо отойти от системных автоповторов и сделать две независимых подсистемы.
• Подсистема реагирования на клавиатуру. При нажатии на кнопку системный код превращается в виртуальную клавишу (например, «Идти вверх», «Выстрел» или «Бомба»). Затем в битовой маске управления в соответствующей позиции ставится 1. При отпускании — соответственно 0.
• Подсистема тактов игры. По таймеру проводится такт игры — акт управления всеми её персонажами, главным и врагами. В зависимости от состояния клавиш мы ведём Главного в ту или иную сторону.
• Третья подсистема — рендерер игры. Она может быть синхронной с тактами игры или нет, в зависимости от того, какое мы хотим поведение на слабых машинах и есть ли желание проработать асинхронщину (не обязательно многопоточную; например, рендерер может поминутно вызывать «прокрути такт игры, если надо»). А также звук и сеть — в нашем вопросе, впрочем, не до них (и вообще рендерингом занимается браузер).

Если тактовая частота игры невелика (скажем, до 16) и приходится подгонять героя «на один шажок», у меня есть маленький лайфхак, оставшийся с J2ME. Создаём две маски: «нажатая» и «удерживаемая».
• При нажатии: поставить 1 в обе маски.
• При отпускании: поставить 0 только в удерживаемую.
• При управлении героем: нажатая := нажатая OR удерживаемая; именно по этой «нажатой» управляем героем; нажатая := 0.

Читайте также:  Pci ven 8086 dev 1c3a cc 078000

Пользователи Виндовс после обновления до десятой версии или обновив ОС столкнулись с проблемой — клавиатура перестала работать.

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

Инструкция по решению проблем с клавиатурой

  • После обновления установки ОС, драйверы USB портов могут не работать глючить.
  • Для начала попробуйте переместить клавиатуру в другой USB порт.
  • Проверьте порт другим способом, чтобы убедится в его работоспособности (подключите мышь, винчестер, флешку в порт, где была клава).

Устройство работает — переходите к следующему пункту.

Устройство не работает — перейдите к пункту 4.

  • Проверьте Bios. При загрузке ОС нажмите клавишу F2, del, Esc (в зависимости от версии биоса на устройстве). Если все исправно работает в Биосе, значит неисправность точно связана с Виндовс.
  • Отрегулируйте настройки Виндовс. Windows имеет настройку «фильтрация клавиш». Она определяет задержку между нажатием клавиши и появлением ее на экране. К сожалению когда этот параметр включен в Windows 10, многие клавы перестают работать.
  • Откройте меню пуск и наберите «фильтрация клавиш».
  • Отключите этот параметр, как показано на скриншоте.

Дублирующий способ. Перейдите в панель управления -> специальные возможности -> Клавиатура. Включите фильтрацию клавиш, сдвинув ползунок в нужную сторону.

  • Переустановите драйверы клавы.
  • Нажмите пуск и напишите «диспетчер устройств».
  • Разверните нужную строку. ПКМ -> Обновить драйверы -> Ок.

Установка не произошла? Перейдите к следующему пункту.

  • Удалить переустановить драйверы. ПКМ -> Удалить -> Ок.
  • После удаления пройдите пункты 3-4 заново.

Установка драйверов с помощью утилиты.

  • Скачайте DriverEasy.
  • По необходимости для ввода данных воспользуйтесь «экранной клавиатурой». Она расположена в меню «специальных возможностей» (описано в выше).
  • Установите и просканируйте ПК, утилита автоматически найдет и скачает необходимые драйверы. Вам не придется беспокоится о том, что вы совершите ошибку в процессе переустановки.
Читайте также:  Сообщение об ошибке g osites is undefined

Отключите антивирус Касперского на время. Проблема была замечена только у антивируса этой марки (причины — функция безопасного ввода). Требуется обновить его до последней версии отключить (в свежей версии проблему устранили).

  • Отключите быстрый запуск Windows 10.
  • Перезагрузите ПК.
  • Если неполадка появляется только после включения, а с рестартом исчезает, идем дальше. Если такого не замечено, пропустите этот пункт.
  • В меню «Пуск» пишем — «электропитание».
  • Кликните на опцию — «Действие кнопок питания», находится она слева вашего меню.
  • Выберите «Изменение параметров, которые сейчас недоступны».
  • Пролистайте вниз, затем уберите галку на параметре «Включить быстрый запуск (рекомендуется)».

Дополнительный метод решения проблемы. Нажмите Win+R и впишите «taskschd.msc», перейдите в «Библиотека планировщика заданий» — «Microsoft» — «Windows» — «TextServicesFramework». Включите задачу «MsCTFMonitor». Выполните ее сами. ПКМ -> выполнить.

  • Зайдите в диспетчер устройств и удалите вашу «клаву», затем перезагрузите ПК. При необходимости добавьте устройство снова, но это произойдет автоматически.
  • Обесточьте свой ПК. Выключите его из розетки, подождите 5 минут, затем зажмите кнопку включения и подержите 5 секунд (пользователям ноутбука — выньте батарею). Включайте ПК в обычном режиме.

Обратитесь в техническую поддержку Microsoft, или к мастеру профессионалу, если наши советы не помогли.

Это одна из самых сумасшедших и странных проблем, с которыми я когда-либо сталкивался. Моя клавиатура работала абсолютно нормально до вчерашнего дня на Ubuntu 13.04. Однако, когда я загружаюсь в Ubuntu сегодня, я внезапно обнаружил, что все ключи работают, но я должен нажать и удерживать их примерно на секунду, чтобы они работали.

Это поведение верно для всех ключи, за исключением кнопок Num Lock, Caps Lock и Scroll Lock, индикатор для них на моей клавиатуре загорается, как только я нажимаю эти клавиши. Клавиатура отлично работает на экране входа в систему, где я помещаю свой пароль. Клавиатура также работает нормально, если я использую гостевую сессию вместо обычной учетной записи пользователя. Я не делал никаких ключей-повторов и использовал стандартную раскладку клавиатуры на английском (США). Я возился с настройками клавиатуры в настройках системы, но безрезультатно. У меня Windows 7 как двойная загрузка, и клавиатура отлично работает на нем.

Читайте также:  Hp smart array e200

Почему я сталкиваюсь с таким поведением и как его нормализовать?

PS: Использование классической клавиатуры Logitech K100 (модель USB).

7 ответов

Я не могу опубликовать правильный ответ с изображениями, и все потому, что я сейчас на общедоступном компьютере только для Windows, но попробуйте перейти к настройкам клавиатуры и проверить, есть ли настройка чувствительности клавиш, тогда, возможно, вы можете настроить он там . также попробуйте отключить клавиатуру, а затем снова подключить ее. Возможно, это сбрасывает ее . Только предложения!

Надеюсь, это поможет . Удачи!

У меня была аналогичная проблема. Я наткнулся на ответ, пытаясь найти решение здесь. Каким-то образом экранный ридер был включен и вызывал неустойчивое поведение. Проверьте его в разделе «Системные настройки» → «Универсальный доступ» → «Просмотр». Убедитесь, что для параметра Считыватель экрана установлено значение ВЫКЛ. Screen Reader OFF

Это может произойти, когда программа демона захватывает нажатия клавиш (например, на борту). В качестве пробной версии откройте gnome-system-monitor и посмотрите, есть ли скрипт bash или даже скрипты python. Попробуйте закрыть его, если он запущен.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.