我在我的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创建的。