问题标签 [squirrel]

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 投票
9 回答
4502 浏览

lua - 游戏引擎脚本语言

我正在尝试用 Ogre3d 渲染引擎构建一个有用的 3d 游戏引擎,用于模拟我提出的一些想法,并且已经走到了一个十字路口。有许多可用的脚本语言,我想知道是否有一两种经过审查并有适当的追随者。

LUA 和松鼠似乎更受审查,但我对任何人都持开放态度。

最好最好有一个用于分发和易于加载的语言的编译形式。

0 投票
1 回答
2245 浏览

c++ - 在 Xcode 中链接 iPhone 应用程序时找不到符号错误

每当我尝试编译我正在移植的 iPhone 应用程序时,都会出现链接错误。该应用程序使用一种称为 Squirrel 的脚本语言(读取关卡文件,由 SDK 执行,无需用户输入)。我已经链接了包括 libsquirrel.a 在内的所有库。我究竟做错了什么?(应用程序是 SuperTux,电脑版的源代码在 supertux.lethargik.org)。

当我查看构建输出时:

libstdc++-static.a 可能会发生一些奇怪的事情。甚至不确定它是什么。

0 投票
2 回答
3485 浏览

scripting-language - 请推荐关于松鼠的好读物

请分享您最喜欢的关于这种语言的链接,在那里人们可以学到最好的东西。
另外,请用几句话描述这种语言与 Lua 等其他语言不同的最重要特征。

我只是不明白为什么要重新发明另一个 Lua/Python/etc。也许我只是错过了一些东西......
但我喜欢性能+脚本的想法,所以我必须理解它!

0 投票
1 回答
319 浏览

java - 当一种语言不支持析构函数时,如何对堆栈展开做出反应?

假设您已经创建了一个Window类的实例。该窗口显示给用户。然后,抛出异常,对实例的引用丢失,但用户仍然可以看到窗口,因为实例仍然存在(只是不再被引用)。

在这些情况下该怎么办?

我专门讨论的是 Squirrel 脚本语言 (http://www.squirrel-lang.org/)。与Java相反,它似乎没有finally块或终结器方法,那么这种语言中的异常处理是否被破坏了?

0 投票
1 回答
2344 浏览

arrays - 在数组中找到一个空槽并使用它

所以我有一个问题,我在 Squirrel 中已经搞砸了一段时间。我想创建一个遍历数组中所有内容的东西,例如:

并寻找那些是-1的,我只想使用其中一个,首先出现的那个(在这种情况下是3到5之间)。

在我的脚本中,当有人销毁某个对象时,它会将对象 id 设置为 -1 而不是常规数字,因为否则在尝试使用该对象时它会出现错误。真的不知道我是否在解释这一点上做得很好。

另一个例子是当玩家连接到某个游戏服务器时,我们连接了 id 0、1、3 和 4 的玩家,所以当下一个玩家连接时,他们得到 id 2。这就是我对数组的追求。

我已经尝试了几件事,唯一最接近它的是:

但是这个的问题是它只取最后一个 ID 并替换它,所以我们有对象 0、1、2 和 3 如果我要销毁 3 并创建一个新的,没问题。如果我要销毁 0、1 或 2 并创建一个新的,则不会占用该插槽,而是选择 4 号,这样就不起作用了。

感谢您的阅读,希望那里的任何人都可以帮助我。


已解决:
这真的很简单,对于其他有同样问题的人来说,这就是我所做的。现在跟随,这可能会变得非常棘手。
我所做的是我添加了一个“休息”;在 else 语句中,代码如下:

是的,后来我确实撞到了自己的头……

0 投票
0 回答
409 浏览

c++ - 从现有 C++ 头文件生成脚本语言的 API 接口代码

我打算使用Squirrel作为我的 C++ 应用程序的脚本语言。自然地,应该有一个 API 用于与 C++ 代码交互(例如访问和修改我的 C++ 程序中的属性)。这个 API 将由一堆类、枚举和函数组成。

虽然有像 Sqrat 这样的实用程序可以将单个 C++ 函数绑定到 Squirrel VM 只需一行代码,但这仍然不能令人满意:它需要我创建两个 C++ 类及其函数才能实际完成所有接口工作,然后我必须维护所有绑定以使我的脚本中也知道这些 C++ 函数。我的目的是消除这种双重维护开销。

所以我想要的是一个工具,它可以简单地获取包含我所有 C++ 类和函数的现有头文件,并从该文件生成 API 注册调用。当我们这样做时,当然最好也为每个函数自动生成一个文档(不管它是 HTML 还是只是包含函数定义 + 注释或其他内容的 Squirrel 脚本)。

我知道有 SWIG,但它没有绑定 Squirrel,而且这并不是我想要的——毕竟,我需要创建 C++ 包装器代码,而不是 Squirrel 代码。我见过Flex,但我也不确定这是否是我正在寻找的东西。那么是否有任何工具可以满足我的需求(从 C/C++ 标头自动创建包装代码和 API 文档)?否则,我想我可能不得不编写自己的小型 C++ 解析器来解析简单的函数和类定义。

0 投票
1 回答
2099 浏览

lua - 代码块的脚本语言

我得到了 code::blocks 作为我的 C/C++ 编译器和 C++ 的傻瓜,但我唯一的问题是我以前从未听说过的晦涩的脚本语言;“松鼠”。是否可以将 code::blocks 的脚本语言更改为我更熟悉的语言,例如 lua?

0 投票
1 回答
530 浏览

squirrel - 编译松鼠代码

我是基于 Squirrel 的脚本的新手。每当我尝试使用 GCC 编译器编译程序时。我收到以下错误:

未找到体系结构 x86_64 的符号

我正在尝试在 64 位 mac 上编译代码。

我是新手,所以如果这是一个非常愚蠢的问题,请原谅我。

0 投票
1 回答
901 浏览

squirrel - 如何使用 Squirrel 中的函数?

我在松鼠代码中调用了一个简单的函数,但这似乎没有按预期工作。带参数调用函数不会影响原始变量。'counter1' 只是保持相同的值。在 javascript 中这会起作用,那么为什么这在 Squirrel 中不起作用呢?

0 投票
1 回答
354 浏览

c++ - 如何使用 Sqrat 绑定将类作为参数的函数?

我正在将一个类绑定到松鼠,我遇到了一个我不知道如何解决的问题。该类有一个函数,该函数将另一个类作为参数。当我选择不绑定它编译的特定函数时,但当我这样做时,它会引发错误。

课程:

绑定

用作参数的类已经与 Sqrat 绑定到 squirrel,没有任何问题,但是 Sqrat 似乎仍然无法识别它是什么类型。关于为什么会发生这种情况的任何想法?