2

我有一个用 VB6 编写的游戏,而且效果很好,但我一直在玩弄创建脚本引擎的想法。我想我希望 VB6 为我读取纯文本脚本文件,然后 lex/parse/execute 它们。

我有很好的编程经验,之前做过简单的C编译器,还有LOGO仿真器。

我的问题是:我可以使用任何工具,例如 Lexx/Yakk/Bison 来帮助我吗?关于词法分析、解析和将命令反馈回 VB6,我应该如何解决这个问题,以便我可以处理它们?这个想法是不是一个坏想法,因为路上有太多障碍(例如,在组装中建造扫雷舰,虽然不是不可能,但非常困难,而且是个坏主意。)?

4

5 回答 5

4

使用 Microsoft® Windows® Script Control,因为它很容易集成到现有的 VB6 应用程序中。该控件支持 VBScript、JScript 或任何其他“活动脚本”实现。

我在四个项目中使用了Windows 脚本控件,它运行得非常好。非常容易集成。我希望微软能给我们一个 .NET 的替代品,并让它变得易于使用。(我知道 .NET 中不需要该控件,但是能够简单地创建一个处理所有内容的对象是很好的。)

Windows 脚本控制

Microsoft® Windows® 脚本控件是一个 ActiveX® 控件,它为开发人员提供了一种使他们的应用程序可编写脚本的简单方法。这反过来又使用户能够通过脚本扩展应用程序功能,就像他们今天使用宏一样。

于 2010-06-09T20:05:23.997 回答
3

除非您是按照自己的指令进行操作,否则您可能想尝试使用 Lua:VB6 - Lua Integration

于 2010-06-09T13:58:51.153 回答
2

如果您愿意使用 VBScript 而不是 VB6,则可以只使用MSScriptControl来运行命令而不是创建自己的命令。是一篇讨论在 .Net 应用程序中使用它的文章,尽管它是一个 ActiveX 控件,因此应该给您很大的灵活性。

该控件可以从这里下载。

于 2010-06-08T18:28:18.477 回答
2

我实际上已经在 VB6[1] 中看到了一些相当合理的编译器/解释器实现——这不是我会选择的语言(功能特性很少,静态类型系统不足),但是根据经验,您可以克服这些缺点并提高工作效率- 那为什么不呢。

您可以使用支持 VB6 的GOLD 解析器生成器作为开始。

[1]:我认为在PSC或此下载存储库中的某个地方...

请注意,也有MSScriptControl

于 2010-06-08T18:33:36.517 回答
0

VB6 似乎还有一个额外的替代方案:

SadScript 是 VB6 的一个变体,主要用于 VB6 作为 MMORPGS 中的脚本引擎。

请参阅此处了解更多信息:什么是sadscript?我可以在 vb.net 中使用它吗?为什么我问过的人都没听说过?

于 2010-06-10T18:37:57.427 回答