Интерактивная подсказка lua в приложении opengl
Итак, когда я запускаю Луа, я получаю что-то вроде:
lua
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
>
Теперь я хочу такую подсказку: 1) в приложении с графическим интерфейсом, которое я написал.
Мое приложение с графическим интерфейсом может предоставлять такие функции, как: get_input_from_screen(); и write_this_crap_out_to_screen(); и больше функций я могу написать по мере необходимости
Я также знаю, как встроить интерпретатор lua в мой код C++ (краткое руководство в Интернете)
Чего я не знаю... это как соединить ввод / вывод интерпретатора lua с моим графическим интерфейсом.
Любая помощь / ссылки приветствуются.
Спасибо!
3 ответа
Почему бы вам не взглянуть на исходный код автономного интерпретатора Lua (lua.c) и посмотреть, как Reoberto, et al. сделал это?
Я тоже хотел сделать что-то подобное, и просто просмотр lua.c на самом деле не "щелкнул" для меня. Только когда я где-то прочитал, что вы хотите реализовать / перезаписать функцию print() своей собственной, мне все стало понятно.
Ключ в том, чтобы написать свою собственную функцию печати в вашем приложении, которая знает, как отправлять выходные данные lua компоненту, который вы хотите - будь то виджет TextBox, игровая консоль сценариев, другой файл или что у вас есть. Тогда все, что вам нужно сделать, это зарегистрировать эту функцию печати, чтобы Луа знал об этом.
Точно так же, чтобы заставить lua обрабатывать ввод сценариев, создайте функцию, которая извлекает строку для обработки (например, текстовое поле виджета), а затем передайте эту строку в нечто вроде lual_dostring() или аналогичное. Затем настройте функцию ввода для запуска какого-либо события, например, когда пользователь нажимает клавишу ввода или когда нажимается кнопка и т. Д.
Этот сайт имеет очень хороший пример кода для иллюстрации.
Логика будет выглядеть так, я полагаю.
string s = gui_read();
string result = lua_interpreter(s);
gui_print(result);