【发布时间】:2014-09-14 20:59:28
【问题描述】:
我正在尝试为我的组件系统提供脚本功能。当然,每个组件都有一个字段“parent”,它拥有对父 Actor 的访问权限。我可以编写代码,这样我就可以从 Lua 访问我的 C++ 方法,但是当我想返回自定义用户数据时遇到了困难,比如 actor。我有一个getParent()方法,我想返回Actor用户数据,所以我可以这样写Lua代码:
parent = getParent()
parent.<some method>
我怎样才能做到这一点?使用轻用户数据?或者当 getParent 被调用时,创建一个新的用户数据,并将该指针指向原始用户数据?
【问题讨论】:
-
这是一个如何将 C++ 对象(类)及其成员函数(如 getParent())公开的问题吗?还是我误解了你的问题?
getParent()在您的示例中是全局函数吗?? -
试试this link,如果我的理解是正确的;
-
我想要实现的是我可以从actor那里添加和获取组件。这是 lua 代码的示例:
player = Actor.new() player:addComponent(ImageComponent.new(player)) imgc = player:getComponent("ImageComponent") imgc.setImagePath("testimg.png") function player:tick() player.setPosition(0,0) end(它可能是无效代码,但现在没关系)然后在我的 c++ 类中,我将检索播放器对象或表的刻度方法或我应该调用什么,然后调用每次引擎调用 tick() -
对不起,现在对我来说太抽象和模糊了。请展示 Lua/C++ 交互的一些实际场景(最好在您的问题中,而不是 cmets 以提高可读性)并指出您遇到问题的部分。或者至少哪个是纯 Lua 对象,哪个是(或应该是)暴露给 Lua 的 C++ 类。
标签: c++ lua lua-api lua-userdata