我正在Haxe / Kha开发游戏。
我需要的是一种可用于游戏的脚本语言。它必须支持变量和循环之类的东西。我正在制作一个JRPG,其中有很多交互功能(例如战利品箱,NPC等),所以我想编写脚本而不是对其进行硬编码。
我希望以类似JS的语言实现它。我希望每个地图有1个文件,并且要采用这种格式。
5, 10 {
movement(WALK_RANDOM);
function interact() {
textBox("Hello World!");
giveItem(RUBBER_DUCK);
}
}
其中5和10是可互动对象的x和y。
运行此命令时,我真正想要做的是(在Haxe中)
Interactable int = new Interactable(5,10);
int.movement = WALK_RANDOM;
int.interact = function () {textBox("Hello World!"); giveItem(RUBBER_DUCK);} // Can you even do this sort of thing in Haxe?
每个地图只有一个脚本文件,并且该文件中有许多可交互的子句。
TL; DR: 我想使用一种JS风格(也许实际上是JS?)脚本语言将内容放入我的游戏中。我该如何用Haxe编写的游戏中添加该内容?
您可能已经看到,我确实迷失了方向,对自己的真实身份一无所知。如果有任何问题或我需要阐述的部分,请指出。
答案 0 :(得分:8)
您考虑过HScript吗?
https://github.com/HaxeFoundation/hscript
这是Haxe的官方脚本解决方案。您可以将Haxe本身(而是其子集)用作嵌入式脚本语言。可以将函数和变量公开给脚本以使其与之交互。
可以在此处找到更详细的描述(尽管某些部分有些特定于Luxe):
http://snowkit.org/2015/06/20/using-hscript-to-program-entity-behaviors-in-luxe-with-auto-reload/