gpt4 book ai didi

C++ 将已存在的对象实例公开给脚本语言

转载 作者:行者123 更新时间:2023-11-30 04:28:34 25 4
gpt4 key购买 nike

因此,我希望能够在脚本语言中修改已经实例化的 C++ 对象。我一直在用 LuaBind 查看 Lua,用 SWIG 或 Boost::Python 查看 Python,但我所看到的只是如何创建对象的新实例,但我想修改已经存在的实例。示例:

C++:

Player playerOne = new Player();

脚本语言:

playerOne.Transform.x += 5;

这可能吗?如果可以,您会建议用什么语言/库来实现这一目标?

最佳答案

在我的主要项目中,我们使用 LuaBind,它运行良好。我们基本上按照您的要求去做。我们有现有的 C++ 对象,我们希望在其中以各种方式扩展行为,但是在对象本身的 C++ 代码中对行为进行这些更改将需要大量工作和风险。

因此,在您的示例中,您至少需要 2 个 C++ 包装器类 - 一个代表“游戏”,允许您编写 API 函数来返回玩家,一个包装器类包装 C++ 播放器类,您可以返回lua。每个包装函数都会有 api 函数/属性,这些函数/属性会摆弄它在内部包装的单个对象,lua 可以调用并将值传递给它。下面是一篇文章的链接,它为您提供了使用 LuaBind 及其外观的非常简单的示例:

http://blog.nuclex-games.com/tutorials/cxx/luabind-introduction/

关于C++ 将已存在的对象实例公开给脚本语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10033335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com