Разработка рогалика.

Закрытые или заброшенные проекты, не состоявшие в Клубе, но имевшие ветку на форуме.

Модератор: Jolly Roger

Ответить
Гоблин
Сообщения: 1
Зарегистрирован: 08 авг 2009, 09:34

Разработка рогалика.

Сообщение Гоблин » 08 авг 2009, 09:47

Вобщем пишу свой рогалик уже начал кой чо делать но столкнулся с проблемой.
Не могу написать взаимодействие со стрелками клавиатуры:
управление решил строить таким образом каждой клавише соответсвует свое числовое ACSII значение
т.е
c:=readkey
b=ord(с)
if b=? - ну и далее в зависимости от того каким будет числовое значение будет выполняться команда
но проблема в том что все 4 стрелки имеют одинаковое значение равное 0.
Вопрос как можно подругому сделать взаимодействие с клавой?
пишу на Turbo Pascal.

Аватара пользователя
Savaro
Сообщения: 16
Зарегистрирован: 05 авг 2009, 12:39
Откуда: Губкин
Контактная информация:

Re: Разработка рогалика.

Сообщение Savaro » 08 авг 2009, 13:23

Гоблин писал(а):Вобщем пишу свой рогалик уже начал кой чо делать но столкнулся с проблемой.
Не могу написать взаимодействие со стрелками клавиатуры:
управление решил строить таким образом каждой клавише соответсвует свое числовое ACSII значение
т.е
c:=readkey
b=ord(с)
if b=? - ну и далее в зависимости от того каким будет числовое значение будет выполняться команда
но проблема в том что все 4 стрелки имеют одинаковое значение равное 0.
Вопрос как можно подругому сделать взаимодействие с клавой?
пишу на Turbo Pascal.
http://faqs.org.ru/progr/pascal/pascal.htm

Код: Выделить всё

Q: А как прочитать нажатия клавиш с клавиатуры? Ну, буквы и цифры я прочитал с
   помощью ReadKey - а вот функциональные клавиши почему-то ноль возвращают.

A: Потому что эти клавиши возвращают расширенный код, состоящий из двух симво-
   лов - как, например,  стрелки,  или буквенно/цифровая клавиатура в комбина-
   ции с Alt, Ctrl, и т.д. Вот, как нужно обрабатывать клавиатуру:

   case ReadKey of                  {читаем код              }
     #0:case ReadKey of             {код оказался расширенным}
          #59:Writeln('Нажали F1');
          #60:Writeln('Нажали F2');
          {.......................}
        end {case};                 {закончили обработку расширенных кодов}
     #13:Writeln('Нажали Enter');
     #27:Exit
   end {case}
Скан-коды клавиш:
http://www.ntlib.chat.ru/ware/tables/scan.htm

Аватара пользователя
Anfeir
Сообщения: 876
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: Разработка рогалика.

Сообщение Anfeir » 14 авг 2009, 08:16

Можно и даже проще -- NumLock и пользовать цифровую клавиатуру. ловить 2 - вниз, 8 - вверх, и т.п.

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: Разработка рогалика.

Сообщение Aerton » 14 авг 2009, 08:25

Anfeir писал(а):Можно и даже проще -- NumLock и пользовать цифровую клавиатуру. ловить 2 - вниз, 8 - вверх, и т.п.
  • * Далеко не все держат нумлок включенным
    * Цифры могут уже быть использованны для чего-то другого
    * Что делать с ноутбуками без num-keys?

Аватара пользователя
Anfeir
Сообщения: 876
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: Разработка рогалика.

Сообщение Anfeir » 14 авг 2009, 08:38

курсора все равно не хватит, чтобы ходить по диагонали. Если по диагонали не нужно ходить, тогда да, можно курсор.
Но в принципе все это мелочи, которые никто не мешает потом поправить. Особенно если в это уперлась разработка. Это все не главное. Цифры на цифровой клаве имеют право на существование. Посмотрите на Адом, если еще не видели.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 59 гостей