Lua, C ++, есть ли хорошие введения, которые идут глубже, чем lua_open ()? - PullRequest
5 голосов
/ 08 июля 2011

Я сейчас много гуглю, но все, что я нахожу, это примеры "Hello World" для Lua с C ++.

Ситуация: игра, большая игра. Имеет внутриигровую консоль, в настоящее время жестко запрограммированную в C ++ (объектно-ориентированную и все), имеет много блоков if-else-if-else ... для проверки команд, введенных пользователем в консоли. Каждая команда может изменять членов других классов игры (например, команда «скорость 5» изменяет переменную double speed в class Car, вызывая Car::setSpeed(5)), а также возвращает вывод на консоль о результате. Есть также команды, которые делают больше «за кулисами», чем просто изменение переменной, это также должен сделать Lua, и только конечный результат передается обратно в код C ++ (вывод консоли + измененные переменные в правильном классе).

Где / как / с чего мне начинать преобразовывать код этих командных функций консоли в Lua? Например, пользователь вводит «скорость 5» в консоли, затем Lua вызывает Car::setSpeed(5), а затем Lua отправляет отчет в консоль C ++. Вместо того, чтобы жестко кодировать код команд, они должны быть написаны на Lua, но вся остальная часть игры должна оставаться на C ++ (как и мои классы и их участники и консольная структура).

Есть хорошие уроки? Любые советы, с чего начать? Некоторым опытом поделиться?

Заранее спасибо

Ответы [ 2 ]

6 голосов
/ 08 июля 2011

Получите копию Программирование на Lua , если вы еще этого не сделали. Раздел, описывающий взаимодействие с C (и, следовательно, C ++), составляет почти 100 страниц и намного больше, чем «привет мир».

В книге нет конкретной информации о привязке C ++, но если ваш компилятор C ++ имеет какие-либо возможности RTTI, это может быть полезно. Вот как мы интегрируем lua с C ++ Builder

0 голосов
/ 08 июля 2011

Я не могу дать вам много советов, так как я использовал только lua, чтобы поиграть со сценариями.
Но я обнаружил, что luabind гораздо более полезен в c ++, чем обычный lua. Может быть, учебники там тоже могут вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...