问题标签 [chaiscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
66 浏览

chaiscript - 将类的非静态成员函数暴露给 chaiscript

我有一个项目试图用 chaiscript 实现键盘宏脚本。我正在编写一个基于 xlib 的类来包装 xlib 代码。由于 xlib 怪癖,我有一个成员函数可以将修饰键添加到忽略的列表中。我怎么能做类似以下最小示例的事情。

我尝试绑定并失败,并显示以下错误消息:

我还尝试使变量 static 起作用,但是如果我尝试使在每个热键的基础上忽略修饰符成为可能,它将不起作用。

我究竟做错了什么?我该如何解决?

0 投票
0 回答
88 浏览

c++ - 如何在 ChaiScript 中使用模板

我正在开发一个游戏引擎,并且正在使用 ChaiScript 向它添加脚本。在我的引擎中,我有一个使用模板的简单实体组件系统。它对每个对象都有一个结构,然后是不同组件的结构。每个组件都包含一个指向其父组件的指针。有一个脚本组件,它是所有 ChaiScript 东西所在的地方。

在 C++ 中,要添加和获取组件,我只需编写:

object->AddComponent<Sprite>("path-to-sprite");

object->GetComponent<Transform>().position.x = 10; (位置只是一个结构,其中包含 x 和 y 位置的浮点数

我的 GetComponent 的定义如下所示:

和添加组件:

我希望能够从 ChaiScript 做同样的事情,但使用指向脚本组件所具有的父对象的指针。我该怎么办?到目前为止,我所做的只是将基本函数添加到脚本中,例如 OnUpdate() 和 OnInit(),以及将内容记录到引擎调试控制台的函数。抱歉,如果我没有使用正确的术语,请提前致谢。

0 投票
1 回答
40 浏览

c++ - 包含某个头文件会导致 SFML 出错

我正在尝试将 ChaiScript 与 SFML 一起用于我的游戏引擎。所有 SFML 的东西都可以正常工作,直到我包含chaiscript.hpp在我的游戏对象头文件中。我的 GameObject 头文件看起来有点像这样:

当我尝试包含chaiscript.hpp在上述文件中时会出现问题。我从 SFML 的 Rect.inl 文件中得到一个重复错误(准确地说是 8 个)'(': illegal token on right side of '::',然后没有其他错误。当我不包含chaiscript.hpp时,或者当我包含chaiscript.hpp在对象 cpp 文件中时,它编译得很好。我之前在 SDL 中使用过 ChaiScript,从来没有遇到过这样的问题,那么它是不是 SFML 宏搞砸了?我怎样才能避免这个问题?

0 投票
1 回答
119 浏览

lua - 在 ChaiScript 中返回多个值?

在 Lua 中,可以返回多个值,例如:

我可以在 ChaiScript 中做这样的事情吗?

0 投票
1 回答
39 浏览

string - Chaiscript,如何将字符转换为字符串

我需要循环字符串的每个字符。无论我使用 for 循环还是范围,我都会被字符卡住,无法将它们转换回字符串。

输出:

如何将其带回字符串?

谢谢

0 投票
1 回答
40 浏览

c++ - chaiscript 在脚本函数中返回用户定义的类型

对于以下代码:

它运作良好。但是,如果我将代码修改如下:

运行过程中会出现运行时错误。而且我还尝试修改代码如下:

并且在运行过程中还有另一种类型的错误。

所以我猜这是由于用户定义结构的赋值操作指令丢失造成的。有没有人可以告诉我如何修复代码并使其正常工作?非常感谢!

0 投票
2 回答
57 浏览

c++ - 使用 i686-w64-mingw32-g++ 编译 Chaiscript 失败

我正在尝试使用 i686-w64-mingw32-g++ 编译器从 Linux 编译一个简单的 chaiscript 示例。我已经让它与 g++ 一起工作,但是在使用命令编译我的应用程序时

这是 main.cpp 的内容

这是它给我的错误

如何修复此错误以便编译我的代码?


编辑:
通过使用 x86_64-w64-mingw32-g++ 而不是 i686-w64-mingw32-g++,我能够走得更远,但现在我收到了这个错误:
0 投票
0 回答
51 浏览

c++ - How to include advanced c++ classes from a module into cython

I am trying to make it so that the Chaiscript module for c++ will work with python. My problem is that the main class I need to use is more advanced then what is used in the tutorials, making it challenging to complete my goal.

The class I want to implement in cython is:

and the cython I have gotten written so far is: