我正在为 JS 游戏创建 AI 引擎,它是由有限状态机组成的。我正在从 XML 加载状态数及其变量值。我还想加载该行为,并且由于我没有时间创建脚本语言,所以我认为在外部文件(XML 节点内)上“插入”JS 代码并在要求。
类似的东西
<evilguy1>
<behaviour>
this.x++;
</behaviour>
<behaviour>
this.y++;
</behaviour>
</evilguy1>
对于类似的事情:
function behaviour_1(){
this.x++;
}
function behaviour_2(){
this.y++;
}
我的问题是,现在我已经加载了代码,我该如何执行它?我想为每个代码“节点”创建一个具有唯一名称的函数,然后从游戏逻辑中调用它们,但我不知道这是否可能(因为您可以从 HTML 加载更多 JS 代码,所以您应该也可以从 JS 代码中完成,不是吗?)。如果没有的话有类似的解决方案吗?提前致谢!
(PS:对外部库的依赖越少越好)
Edit 1:
好的,现在我知道如何创建函数来包含代码
window[classname] = function() { ... };
嗯,你可以使用Function
构造函数,如本例所示:
var f = new Function('name', 'return alert("hello, " + name + "!");');
f('erick');
这样,您就可以使用参数和函数体定义一个新函数,并将其分配给变量 f。您可以使用哈希集并存储许多函数:
var fs = [];
fs['f1'] = new Function('name', 'return alert("hello, " + name + "!");');
fs['f1']('erick');
加载 xml 取决于它是在浏览器上运行还是在服务器上运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)