从Lua创建C ++类或“实体”(或等效的东西)

时间:2015-08-14 04:35:39

标签: c++ class scripting lua game-engine

我在我的C ++游戏中使用Lua编写脚本。我希望人们能够像Garry的Mod一样创建自己的“实体”。它的工作方式是你创建一个新的lua文件,你给实体一个名称,描述,baseclass / superclass继承(例如敌人)你给它的方法,如新的,更新,绘图等,你可以使用它像任何其他游戏实体。

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

我知道这是可能的,否则Garry的Mod将无法做到......

示例:

-- my_enemy.lua
ENTITY.Name = "My Entity"
ENTITY.Type = TYPE_ENEMY

function ENTITY:new(x, y)
    -- do stuff
end

function ENTITY:update()
    -- do more stuff
end

function ENTITY:draw()
    -- do even more stuff
end

并通过例如Lua中的game.newEntity(my_enemy, 0, 0)创建它。

(使用ENTITY作为实体而不是my_enemy只是复制GMod如何做到这一点。)

我不是试图用自己的方法创建所有的实体,我正在努力制作C ++类,但是基本上是从Lua创建的。

0 个答案:

没有答案