Работа с клавиатурой

Тема в разделе "WASM.BEGINNERS", создана пользователем DGDever, 10 дек 2006.

  1. DGDever

    DGDever New Member

    Публикаций:
    0
    Регистрация:
    10 дек 2006
    Сообщения:
    1
    Вопрос:
    Как отлавливать нажатие и отпускание клавиш клавиатуры?

    Собственно, создаю простенькую космическую стрелялку. Так вот корабль игрока должен внизу двигаться по горизонтали. Также должна быть возможность стрельбы. Если нажать стрелку, например, влево, то корабль туда и движется. Однако если нажать какую-либо другую кнопку (не отпуская стрелку), то корабль двигаться перестает (т.е. стрелка становится ненажатой). Так вот необходимо, чтобы можно было одновременно зажать несколько клавиш и чтобы все они обрабатывались.

    Пробовал делать через прерывание 16h (пока есть клавиши в буфере, считывать их (1я и 0я функции прерывания)). На данный момент реализовал через прямое обращение к буферу клавиатуры (32 байта по адресу 0040:001E). Но все равно не помогает...

    Хочется, чтобы можно было считывать нажатие клавиш (как API-сообщение WM_KEYDOWN) и их отпускание (WM_KEYUP). С нажатием проблем нет, а вот отпускание... :dntknw:

    P.S.: Программа пишется для реального режима (потому WinAPI-функции тут не к месту) на TASM'е.
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    DGDever
    В обработчике int9h можно отличить нажатие от отпускания.