Я пытаюсь понять, как работает Lua и как его можно интегрировать в проект, например, игру для iPhone на базе Obj-C. Я прекрасно интегрировал исходный код Lua и сумел использовать простой класс менеджера для преобразования вызовов функций, записанных в файле .lua, в методы Obj-C в проекте.
Я сейчас немного застрял; Я не уверен, как поступить с тем, для чего я хотел бы использовать Lua, и, учитывая, что он много гуглил, я не нашел статьи, которая заполнила бы небольшие пробелы в моем понимании. Я хотел бы использовать Lua для написания простой игровой логики для уровней в моей игре; например, я мог бы захотеть проверить, что игрок перешел на определенную часть уровня, затем, как только он это сделает, я проверю, поднимает ли он объект, затем, как только он бросает этот объект, я проверяю, попал ли он в другой объект и т. д. и т. д.
В сценарии я бы хотел что-то вроде этого:
if (objectsAreTouching(level.objects["objIndex1"], level.objects["objIndex2"]))
{
//Move to next win-condition.
}
Так что я знаю, как получить доступ к функции, например, названной выше, objectsAreTouching
, но не могу понять, как бы из файла .lua получить доступ к Словарю или Массиву из одного из Основные классы игры. Я предполагаю, что это должно быть возможно, я прав? Если так, как ты это делаешь? Если вы можете, тогда можете ли вы иметь метод в игровом движке, который возвращает BOOL-передачу, возвращающую значение скрипту, чтобы приведенный выше оператор if выполнял код внутри него?
Возможно, я задал этот вопрос плохо, поэтому, если мне нужно что-то прояснить, дайте мне знать. Кроме того, я знаю о проблемах, связанных с запретом интерпретируемого кода Apple, и меня это не касается.
Спасибо за любую помощь!