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