【问题标题】:Lua API push userdataLua API 推送用户数据
【发布时间】: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


【解决方案1】:

许多绑定库作者都经历过创建组件的痛苦,该组件能够将 C++ 类简单地暴露给 Lua。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-08
    • 2012-06-28
    • 2020-01-14
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    相关资源
    最近更新 更多