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

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


help:inputs

Различия

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

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

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:inputs [2020/08/18 12:17]
aleks_versus
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>​
  
-Варианты реализации проверки правильности ввода текста игроком.+, где ''​%%[$текст]%%''​ — это приглашение в диалоговом окне, которое видит игрок. Например: 
 + 
 +<sxh qsp> 
 +$name = $input('​Как ​звать тебя, герой?'​) 
 +</​sxh>​ 
 + 
 +При выполнении данной команды на экране ​появится диалоговое окно с текстом "​Как звать тебя, герой?", а выполнение остального кода приостановится,​ пока игрок не провзаимодействует с диалоговым окном. 
 + 
 +Игрок может ввести ​или не ввести текст, и нажать кнопки "​**ОК**"​ или "​**Отмена**". Если игрок ввёл ​текст ​и нажал кнопку "​**ОК**",​ функция ''​%%$INPUT%%''​ вернёт переменной ''​%%$name%%''​ введённый ​игроком ​текстВо всех остальных случаях после закрытия диалогового окна функция вернёт пустую строку (''​%%""​%%''​). 
 + 
 +Другие примеры:​
  
 <sxh qsp> <sxh qsp>
 ! Вопрос с одним правильным ответом. ​ ! Вопрос с одним правильным ответом. ​
-if $input ('​Что приходит после тьмы?'​) = '​свет':​ +if $input('​Что приходит после тьмы?'​)='​свет':​ 
-    msg '​Все верно.'​+  msg '​Все верно.'​
 else else
-    ​msg '​Ответ не верный.'​+  ​msg '​Ответ не верный.'​
 end end
-</​sxh>​ 
  
-<sxh qsp> 
 ! Пример реализации вопроса с несколькими вариантами ответа из которых любой будет правильным. ! Пример реализации вопроса с несколькими вариантами ответа из которых любой будет правильным.
-$answer = $TRIM($LCASE($input('​Ответить'​))) +$answer=$trim($lcase($input('​Ответить'​))) 
-if $INSTR($answer,'​красный'​) ​OR $INSTR($answer,'​желтый'​) ​OR $INSTR($answer,'​зеленый'​):​ gt '​win'​+if instr($answer,'​красный'​) ​or instr($answer,'​желтый'​) ​or instr($answer,'​зеленый'​):​ gt '​win'​
 ! Введя красный или зеленый ил желтый произойдет переход на локацию '​win'​ ! Введя красный или зеленый ил желтый произойдет переход на локацию '​win'​
 </​sxh>​ </​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:​modules|Вперёд:​ Работа с файлами,​ использование модулей]] 
help/inputs.1597753062.txt.gz · Последние изменения: 2020/08/18 12:17 — aleks_versus