Lunali
@Lunali
скрытна.

Как задать Lua ввод от пользователя?

В Питоне это будет вот так:
a=input("Кто ты? и как тебя Зовут?:")
print(a)


В Scratch вот так.
5fcbebf0228f3027658891.png

Как это сделать в Lua?

io.write('Hello, what is your name? ')
local name = io.read()
io.write('Nice to meet you, ', name, '!\n')

Так я пробовала, - не работает, внешней библиотеки нет и ее нельзя подключить, работаю в Coregames.

Как открыть окно диалога в Lua и добавить в ответ?
  • Вопрос задан
  • 3250 просмотров
Решения вопроса 1
dollar
@dollar Куратор тега Lua
Делай добро и бросай его в воду.
Lua - встраиваемый язык.

Поэтому нужно смотреть не на сам Lua, а на API, которое ему предоставляет внешняя среда - Coregames, а также на компоненты, которые там присутствуют и которые можно использовать. Эта среда и определяет, как будет выглядеть окно ввода, сколько там будет кнопок, какая функция Lua отвечает за ввод и т.д. Внутренние функции языка Lua могут быть изменены или вообще удалены, в зависимости от способа встраивания, защиты и т.д. Очень часто отключают библиотеки io и os, чтобы ограничить взаимодействия с системой и повысить безопасность.

Документация по Coregames находится здесь: docs.coregames.com

Вполне может быть такое, что Coregames вообще никак не предполагает ввод строки пользователем. Тогда придётся делать своё решение. А именно, нарисовать поле ввода, считывать отдельные клавиши, и формировать из них строку. Ещё вариант нарисовать кнопки на экране, чтобы пользователь мог их тыкать мышкой, постепенно формируя строку. Но это лишь предположение, что нет поддержки ввода строк. Точный ответ можно получить после прочтения всей документации.

Например, в игре Tabletop Simulator тоже есть встроенный язык Lua. Поле ввода, как таковое, там не предусмотрено. Но зато через событие можно "ловить" в чате вводимые игроками сообщения. Также у игроков есть возможность задавать объектам имена и описания - их тоже можно считывать, используя в качестве альтернативы полю ввода. Эти компоненты определяются средой, то есть данной игрой, и язык Lua никак не может их создать из ничего или удалить из игры, но при этом Lua имеет к ним доступ, может получать оттуда значения или записывать новые значения туда. Таким образом, Lua использует те компоненты, которые определяются средой и которые описаны в документации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы