Перейти к основному содержимому

15.2. Как задействовать строку ввода в игре?

В: Как задействовать строку ввода в игре?

О: Начать следует с того, что любой текст, введённый игроком, можно получить в любой момент с помощью функции $user_text.

Для примера попробуйте сделать следующее:

  1. Включите строку ввода:
    showinput 1
  2. Создайте действие:
    act "Вывести текст из строки ввода":
    *pl $user_text
    end
  3. Теперь запустите игру, пробуйте вводить текст в поле ввода, а затем нажимать на действие. Текст из поля ввода будет появляться на экране.

Далее обратимся к локации-обработчику строки ввода. Несмотря на то, что предназначение локации "обработчик строки ввода", сама по себе эта локация строку ввода не обрабатывает. Код этой системной локации выполняется, если установить курсор в поле ввода, а затем нажать клавишу "Enter".

Для того, чтобы это проверить, проделайте следующее:

  1. Создайте новую локацию. Имя может быть любым, но для примера назовём её "обработчик_ввода".
  2. Чтобы плеер понял, какую локацию он должен использовать, как обработчик строки ввода, необходимо прописать название этой локации в переменной $usercom. Например, на самой первой локации в игре пишем:
    $usercom = "обработчик_ввода"
  3. На локации-обработчике строки ввода пишем такой код:
    ! увеличиваем значение переменной на единицу

    enter += 1
    ! выводим на экран

    *pl enter
  4. Теперь, когда вы запустите игру и установите курсор в поле ввода, а затем нажмёте клавишу "Enter", вы увидите, что на экране появится число. С каждым нажатием клавиши "Enter" на экране будет появляться новое число.

Объединив две эти возможности, можно задействовать строку ввода. Т.е. по нажатию клавиши "Enter", прямо на локации-обработчике строки ввода с помощью функции $user_text получаем текст, введённый игроком, и производим действия, в зависимости от того, что нам нужно:

! локация "обработчик_ввода" (usercom)
if $user_text="войти в комнату":
! если введён текст "войти в комнату"
! отправляем игрока на локацию "комната"
goto "комната"
! закрываем условие

end