Автор | Сообщение |
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 03.01.06 14:15. Заголовок: Anykey и т.д. - технический вопрос
Простите за глупость... В общем, вопрос такой: как перехватывать нажатия клавиш? Фиксирует ли anykey код нажимаемой кнопки или для этого используется другая команда? И еще - как можно спрятать курсор с глаз долой? Спасибо.
|
|
Профиль
Цитата
|
Ответов - 7
[только новые]
|
|
|
| почетный хоббит баггинс
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 03.01.06 15:25. Заголовок: Re:
Перехват нажатия... о джозеф, как я устарел... в шестом лифте сделаю при нажатии на цифру отправление на опр. этаж... З.Ы. Ну что, Хломидоманад, как тебе лифты?
|
|
Профиль
Цитата
|
|
| администратор
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 03.01.06 17:23. Заголовок: Re:
Хломидоманад пишет: цитата Фиксирует ли anykey код нажимаемой кнопки или для этого используется другая команда?
Да, фиксирует. Простой пример: == :0 anykey x p #x$ ; if x<>27 then goto 0 == выводятся коды нажатых клавиш, пока не нажмешь Esc. цитата И еще - как можно спрятать курсор с глаз долой?
Курсор при anykey'е ? Штатно пока не спрячешь.
|
|
Профиль
Цитата
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 03.01.06 22:26. Заголовок: Re:
Victor Спасибо. Сделал себе менюшку с собственными батонами. Из-за того, что cls делается по линиям, смотрится это дело довольно убого. Можно ли как-нибудь ускорить процесс? (Может быть, есть команда скачка в заданное место экрана?) цитата З.Ы. Ну что, Хломидоманад, как тебе лифты?
Круто.
|
|
Профиль
Цитата
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 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'е ? Штатно пока не спрячешь.
А было бы неплохо.
|
|
Профиль
Цитата
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 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 ???
|
|
Профиль
Цитата
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 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 --
|
|
Профиль
Цитата
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 06.01.06 12:57. Заголовок: Re:
Walky Talky спасибо
|
|
Профиль
Цитата
|
|