【发布时间】:2017-06-20 09:25:06
【问题描述】:
我希望使用 Ruby 作为我的游戏引擎的脚本语言。我找到了描述如何从 C++ 代码调用 Ruby 类的常用文章,反之亦然(例如 here),但我不太明白如何使用这种工作方式来做我想做的事......
我的引擎目前使用一种我自己用 Flex 和 Bison 编写的小语言,以及一个基于堆栈的小虚拟机。脚本并不总是从头到尾运行,例如它们有时包含诸如“睡眠 2 秒”或“等待角色完成行走”之类的命令,因此调度程序会密切关注每个脚本的状态和指令指针,并知道何时恢复它们,等等。
看来我真的需要某种嵌入式 Ruby 解释器,我可以对其进行一定程度的控制,而不是简单地调用 Ruby 方法。还是我只是迟钝而遗漏了什么?
我在 Microsoft Visual C++ 中工作,因此理想情况下,任何解决方案都可以很好地轻松编译。
【问题讨论】:
-
如果有人好奇我最终做了什么……我用 Lua 代替了它,它有协程并且似乎工作得很好。