Как создать объект lua в C++/Luabridge?

У меня есть скрипт lua, который должен действовать как игровой компонент, например так:

-- Enemy.lua

Enemy = {

  health = 5,
  name = "DefaultEnemyName",

  onUpdate = function()
    health = health - 1
  end,

  healEnemy = function(amount)
    health = health + amount
    print(health)
  end

}

Я хочу иметь возможность создать новый экземпляр этой таблицы / объекта и сохранить его в C++.

В настоящее время, если я создаю lua_State и загружаю скрипт дважды, переменные разделяются в каждой таблице...

Результат будет выглядеть примерно так, если я исцелю трех разных врагов с одним очком здоровья:

Enemy1, healEnemy(): 6
Enemy2, healEnemy(): 7
Enemy3, healEnemy(): 8

Итак, мой вопрос: как мне создать тип экземпляра этой таблицы, не создавая много lua_States (что, по-видимому, плохо) в luabridge?

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

1 ответ

Решение

Я думаю, что вам нужно использовать классы Луа. Посмотрите эту ссылку Учебник по созданию объектов Lua

Другие вопросы по тегам