从Lua中创建一个C++类或“实体”(或等效物)

我正在使用Lua在我的C ++游戏中编写脚本。我希望人们能够像在Garry的Mod中一样创建自己的“实体”。它的工作方式是创建一个新的lua文件,给实体命名、描述、继承的基类/超类(例如enemy)并为其提供新,更新,绘制等方法。你可以像其他游戏实体一样使用它。

所以我想要类似的东西,我该怎么做?我目前正在使用alexames的LuaWrapper将我的C ++类注册到Lua。

我知道这是可能的,否则Garry的Mod就无法做到这一点。

例子:

“my_enemy.lua”

ENTITY.Name =“My Entity”

ENTITY.Type = TYPE_ENEMY

function ENTITY:new(x,y)

  • 做一些事情

end

function ENTITY:update()

  • 做更多的事情

end

function ENTITY:draw()

  • 做更多的事情

结束

“游戏。newEntity(my_enemy,0,0)”在Lua中创建它。

(使用实体作为实体而不是my_enemy是重复GMod的方式。)

我不是要制作具有自己方法的唯一实体,而是尽量制作基本上与C ++类相同的内容,但是从Lua创建它们。

点赞