Инструменты пользователя

Инструменты сайта


help:inputs

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:inputs [2013/11/09 09:26]
newsash
help:inputs [2024/10/14 12:41] (текущий)
aleks_versus
Строка 1: Строка 1:
 [[help:​html|Назад:​ HTML]] [[help:​html|Назад:​ HTML]]
-=====Ввод текста игроком===== 
  
-Ввод текста игроком ​может быть двух видов: __//​строка//​__ ввода текста и //​__диалоговое окно__//​ для ввода.\\  +====== ​Ввод текста игроком ​======
-Строку ввода рекомендуется использовать только если требуется ввод текста много раз подряд (например,​ при реализации парсерной игры).+
  
-====Строка ввода====+Ввод ​текста игроком можно сделать двумя способами:​ использовать строку ввода текста,​ либо диалоговое окно для ​ввода.
  
-  * **SHOWINPUT** //[#​выражение]/​/ - если значение выражения отлично от 0, то показывает строку вводаиначе скрывает её+Рекомендуется использовать диалоговое окно, кроме тех случаев,​ в которых требуется вводить текст много раз подряд,​ например,​ при реализации парсерной игры - в таких случаях рекомендуется использовать строку ввода. 
-  * **USER_TEXT** или **USRTXT** - возвращают текст, находящийся в строке ввода. + 
-  * **CMDCLEAR** ​или **CMDCLR** - очистка строки ввода+===== Операторы и функции для работы со строкой ввода ===== 
-  * См[[service_locations|$USER_COM]] + 
-  * //Примеры:​//<sxh qsp> +  ​''​%%SHOWINPUT%%''​ — данный оператор управляет отображением строки ввода на экране. Общая запись:​ <sxh qsp> 
-$text = $USER_TEXT +SHOWINPUT [#​выражение] 
-CMDCLEAR +</sxh> , где ''​%%[#​выражение]%%''​ — это число. Обычно используются значения 0 и 1. Если значение выражения ​''​%%[#​выражение]%%'' ​отлично от нулястрока ввода отображается. Если значение выражения ''​%%[#​выражение]%%''​ равно нулю, строка ввода скрыта. Примеры:​ <sxh qsp> 
-SHOWINPUT 0+showinput 1 & ! показывает строку ввода 
 +showinput 0 & ! скрывает строку ввода 
 +</​sxh>​ Для удобства чтения кода можно заранее определить переменные ''​%%on%%''​ и ''​%%off%%''​ и использовать их: <sxh qsp> 
 +on, off = 1, 0 
 +showinput on & ! показывает строку ввода 
 +showinput off & ! скрывает ​строку ввода 
 +</​sxh>​ 
 +  * ''​%%CMDCLEAR%%''​ — оператор очистки строки вводаИмеет краткую форму ''​%%CMDCLR%%''​. Удаляет весь текст из строки ввода. <sxh qsp> 
 +cmdclear 
 +</​sxh>​ 
 +  * ''​%%$USER_TEXT%%''​ — данная функция в ЛЮБОМ месте ​игры ​возвращает текст, ​который ​находится в строке ввода ​(поле ввода)Имеет краткую форму ''​%%$USRTXT%%''​. Пример ​использования совместно с обработчиком ​строки ввода можно посмотреть в разделе ​[[help:service_locations|"​Служебные локации"​]]Пример ​действия,​ по нажатию на которое в окно дополнительного описания будет выводиться текст, введённый в строку ввода: <sxh qsp> 
 +act "​Что я написал?":​ pl 'Я написал:​ "<<​$user_text>>"​.'​
 </​sxh>​ </​sxh>​
  
-====Диалоговое окно====+===== Диалоговое окно ====
 + 
 +''​%%$INPUT%%''​ — данная функция выводит на экран диалоговое окно с указанным текстом,​ а затем возвращает интерпретатору введённый игроком текст, либо ''​%%""​%%''​ (пустая строка),​ если была нажата кнопка "​**Отмена**"​. Общая запись:​
  
-**INPUT(**//​[$текст]//​**)** - выводит окно ввода с приглашением //​[$текст]//​.\\ ​ 
-Возвращает введённый игроком текст, либо ''​ (пустая строка),​ если была нажата кнопка "​Отмена"​. 
 <sxh qsp> <sxh qsp>
-$name = INPUT('Как звать тебя, герой?'​)+$INPUT([$текст])
 </​sxh>​ </​sxh>​
----- + 
-[[help:​modules|Вперёд:​ Работа с файлами,​ использование модулей]]+, где ''​%%[$текст]%%''​ — это приглашение в диалоговом окне, которое видит игрок. Например:​ 
 + 
 +<sxh qsp> 
 +$name = $input('​Как звать тебя, герой?'​) 
 +</​sxh>​ 
 + 
 +При выполнении данной команды на экране появится диалоговое окно с текстом "​Как звать тебя, герой?",​ а выполнение остального кода приостановится,​ пока игрок не провзаимодействует с диалоговым окном. 
 + 
 +Игрок может ввести или не ввести текст, и нажать кнопки "​**ОК**"​ или "​**Отмена**"​. Если игрок ввёл текст и нажал кнопку "​**ОК**",​ функция ''​%%$INPUT%%''​ вернёт переменной ''​%%$name%%''​ введённый игроком текст. Во всех остальных случаях после закрытия диалогового окна функция вернёт пустую строку (''​%%""​%%''​). 
 + 
 +Другие примеры:​ 
 + 
 +<sxh qsp> 
 +! Вопрос с одним правильным ответом.  
 +if $input('​Что приходит после тьмы?'​)='​свет':​ 
 +  msg '​Все верно.'​ 
 +else 
 +  msg '​Ответ не верный.'​ 
 +end 
 + 
 +! Пример реализации вопроса с несколькими вариантами ответа из которых любой будет правильным. 
 +$answer=$trim($lcase($input('​Ответить'​))) 
 +if instr($answer,'​красный'​) or instr($answer,'​желтый'​) or instr($answer,'​зеленый'​):​ gt '​win'​ 
 +! Введя красный или зеленый ил желтый произойдет переход на локацию '​win'​ 
 +</​sxh>​ 
 + 
 +Допустимо,​ но не одобряется,​ использовать функцию для возвращения числовых значений:​ 
 + 
 +<sxh qsp> 
 +INPUT([$приглашение]) 
 +</​sxh>​ 
 + 
 +Это может привести к различным ошибкам в игре, если игрок введёт в диалоговом окне не только цифры. Например:​ 
 + 
 +<sxh qsp> 
 +age=input('​Сколько вам лет?'​) 
 +</​sxh>​ 
 + 
 +Если игрок введёт вместо числа строку "''​%%24 года%%''",​ плеер выдаст ошибку **101 "​Несоответствие типов данных"​**. Подобные ситуации должен предусматривать автор игры, а значит правильно будет озаботиться проверкой введённого значения уже после того, как функция ''​%%$INPUT%%''​ будет выполнена. 
 + 
 +<sxh qsp> 
 +:​enter_text 
 +! предлагаем игроку ответить на вопрос 
 +! и присваиваем введённый текст переменной:​ 
 +$text=$input('​Сколько вам лет?'​) 
 +! если во введённом тексте содержатся не только 
 +!  цифры, либо игрок не ввёл ответ:​ 
 +if $text=""​ or no isnum($text):​ 
 +    ! предлагаем игроку снова ответить на вопрос:​ 
 +    jump '​enter_text'​ 
 +else 
 +    age=val($text) 
 +end 
 +</​sxh>​ 
 + 
 +[[help:​modules|Вперёд:​ Работа с файлами ​игр, использование модулей]] 
help/inputs.1383989185.txt.gz · Последние изменения: 2013/11/09 13:26 (внешнее изменение)