АвторСообщение
постоянный участник




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 03.01.06 14:15. Заголовок: Anykey и т.д. - технический вопрос


Простите за глупость... В общем, вопрос такой: как перехватывать нажатия клавиш? Фиксирует ли anykey код нажимаемой кнопки или для этого используется другая команда?
И еще - как можно спрятать курсор с глаз долой?
Спасибо.

Спасибо: 0 
Профиль Цитата
Ответов - 7 [только новые]


почетный хоббит баггинс


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 03.01.06 15:25. Заголовок: Re:


Перехват нажатия... о джозеф, как я устарел... в шестом лифте сделаю при нажатии на цифру отправление на опр. этаж...

З.Ы. Ну что, Хломидоманад, как тебе лифты?

No hope, the blind leads the blind.
Carry on though future's denied...

(Blind Guardian, "And Then There Was Silence")
Спасибо: 0 
Профиль Цитата
администратор


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 03.01.06 17:23. Заголовок: Re:


Хломидоманад пишет:
цитата
Фиксирует ли anykey код нажимаемой кнопки или для этого используется другая команда?
Да, фиксирует. Простой пример:
==
:0
anykey x
p #x$ ;
if x<>27 then goto 0
==
выводятся коды нажатых клавиш, пока не нажмешь Esc.

цитата
И еще - как можно спрятать курсор с глаз долой?
Курсор при anykey'е ? Штатно пока не спрячешь.

Спасибо: 0 
Профиль Цитата
постоянный участник




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 03.01.06 22:26. Заголовок: Re:


Victor
Спасибо. Сделал себе менюшку с собственными батонами. Из-за того, что cls делается по линиям, смотрится это дело довольно убого. Можно ли как-нибудь ускорить процесс? (Может быть, есть команда скачка в заданное место экрана?)
цитата

З.Ы. Ну что, Хломидоманад, как тебе лифты?

Круто.

Спасибо: 0 
Профиль Цитата
постоянный участник


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 04.01.06 12:17. Заголовок: Re:


Вот еще удобная вещь:

:pk
style_dos_textcolor = style_dos_cursorcolor
p #/$ [ НАЖМИТЕ ПРОБЕЛ ДЛЯ ПРОДОЛЖЕНИЯ ]
style_dos_textcolor = 15
:ak
anykey key
if key = 27 then pln #/$&quit
if key <> 32 then goto ak
cls
end

По нажатии пробела происходит очистка экрана и код выполняется дальше. Код цветов можно опустить.

Таким образом, где нужно что бы пользователь нажал кнопку пишем proc pk и все. ;) Пример: недавняя игра Тень над Риверкроссом. Кстати, напомнила мне графический квест - Некрономикон (особенно город). Тоже по Лавкрафту.

2 Victor
цитата
Курсор при anykey'е ? Штатно пока не спрячешь.

А было бы неплохо.

Спасибо: 0 
Профиль Цитата
постоянный участник




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 04.01.06 22:14. Заголовок: Re:


Пасибо. И еще вопрос: есть ли в УРК команды для работы со строками? Т.е. ты input строчку, а потом, скажем, рассматриваешь ее n-ный символ (парсер хотел сделать)?
Или все придется делать способом дровосека?:

:main
i=0
:cycle
i=i+1
anykey l#i$
a=l#i$
if a=13 then goto vvod
if a=97 or a=65 then p ф
if a=98 or a=66 then p и
if a=99 or a=67 then p с
...
goto cycle
end

???

Спасибо: 0 
Профиль Цитата
постоянный участник


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 05.01.06 11:00. Заголовок: Re:


Это можно сделать при помощи операции расщепления на подстроки (токены).

tokens_delim - строковая переменная, по которой делится строка. Если равна char, то строка делится на отдельные символы.
tokens - комманда делит строку на подстроки (разделитель - tokens_delim) Результаты сохраняются в строках вида tokenn, где n - номер подстроки. (очевидно, что если tokens_delim равно char, то в этих строках содержатся отдельные символы)
tokens_num - содержит число подстрок в результате расщепления строки.
Операция разделения на подстроки никак не сказывается на исходной текстовой переменной.


Пример:
--
:1
instr string=
pln Введите строку:
input string
instr tokens_delim=char
pln Введите позицию символа:
input n
tokens string
if tokens_num>=n then pln #%token#n$$ - #n$-й символ строки "#%string$" else pln Такого символа нет.
pln #/$В строке #tokens_num$ символов.
btn 1,еще
end
--

И я правильно сделал, что отправил всех обратно в 2002 год. Спасибо: 0 
Профиль Цитата
постоянный участник




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 06.01.06 12:57. Заголовок: Re:


Walky Talky
спасибо

Спасибо: 0 
Профиль Цитата
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 21
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет