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

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


help:inputs

Различия

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

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

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