0

我目前正在构建一个简单的游戏引擎/基本库。现在,我正在研究脚本支持。因为我一直更喜欢 JavaScript,比如 Lua 或 Python,所以我考虑使用它作为我的主要脚本语言。Google V8 首先让我印象深刻,它具有良好的性能和相对简单的暴露类的方法——大量使用模板。但是,我似乎无法在 Windows 上使用 MinGW 编译 V8 - 它只是不想。然后我看了看 ChaiScript,它也很有趣——尤其是因为它比 V8 更先进了嵌入。然而,这不是我的第一选择。

现在,我的问题如下。如何实现将复杂的 C++ 类暴露给 duktape?我知道这个问题,但它只使用一个非常简单的类 foobar 类。说我有这门课:

class Entity
    {
    public:
        Entity(std::string name_item)
        ~Entity();

        size_t getID();

        bool hasComponent(size_t componentid_item);
        EntityComponent* getComponent(size_t componentid_item);
        void addComponent(EntityComponent* component_item);
        EntityComponent* removeComponent(size_t componentid_item);
        void deleteComponent(size_t componentid_item);
    private:
        unsigned long long m_ID;
        std::unordered_map<size_t, EntityComponent*> m_Components;
    };

我将如何公开它,以便duktape可以使用它?此外,我可以通过使用模板(尤其是 ChaiScript(尤其是)和 Google V8 如此重用吗?)以某种方式自动化(或更容易)这个过程吗?

4

0 回答 0