15.2. Как задействовать строку ввода в игре?
В: Как задействовать строку ввода в игре?
О:
Начать следует с того, что любой текст, введённый игроком, можно получить в любой момент с помощью функции $user_text.
Для примера попробуйте сделать следующее:
- Включите строку ввода:
showinput 1 - Создайте действие:
act "Вывести текст из строки ввода":
*pl $user_text
end - Теперь запустите игру, пробуйте вводить текст в поле ввода, а затем нажимать на действие. Текст из поля ввода будет появляться на экране.
Далее обратимся к локации-обработчику строки ввода. Несмотря на то, что предназначение локации "обработчик строки ввода", сама по себе эта локация строку ввода не обрабатывает. Код этой системной локации выполняется, если установить курсор в поле ввода, а затем нажать клавишу "Enter".
Для того, чтобы это проверить, проделайте следующее:
- Создайте новую локацию. Имя может быть любым, но для примера назовём её "обработчик_ввода".
- Чтобы плеер понял, какую локацию он должен использовать, как обработчик строки ввода, необходимо прописать название этой локации в переменной
$usercom. Например, на самой первой локации в игре пишем:$usercom = "обработчик_ввода" - На локации-обработчике строки ввода пишем такой код:
! увеличиваем значение переменной на единицу
enter += 1
! выводим на экран
*pl enter - Теперь, когда вы запустите игру и установите курсор в поле ввода, а затем нажмёте клавишу "Enter", вы увидите, что на экране появится число. С каждым нажатием клавиши "Enter" на экране будет появляться новое число.
Объединив две эти возможности, можно задействовать строку ввода. Т.е. по нажатию клавиши "Enter", прямо на локации-обработчике строки ввода с помощью функции $user_text получаем текст, введённый игроком, и производим действия, в зависимости от того, что нам нужно:
! локация "обработчик_ввода" (usercom)
if $user_text="войти в комнату":
! если введён текст "войти в комнату"
! отправляем игрока на локацию "комната"
goto "комната"
! закрываем условие
end