我正在尝试为我正在努力的游戏引擎创建脚本化AI。我决定尝试使用Groovy创建.groovy行为文件,这些文件作为GroovyClasses加载,然后转换为我的行为界面。问题是,这是非常缓慢的。我正在每个游戏周期执行更新,脚本化的AI类使程序爬行。我的问题是,有没有办法加快嵌入式常规速度,还是有更好的方法来做我正在做的事情?谢谢你的帮助。
以下是相关代码:
public interface Behavior {
public void execute(GameComponent component, float time);
}
Groovy文件在初始时加载,并且是强制转换GroovyClasses:
public boolean cacheScript(String key, String path) {
try {
Class groovyClass = loader.parseClass(ClassLoader
.getSystemResourceAsStream(path));
Object object = groovyClass.newInstance();
scripts.put(key, (Behavior) object);
} catch (InstantiationException e) {
return false;
} catch (IllegalAccessException e) {
return false;
}
return true;
}
然后GameComponent像这样执行此代码
engine.getBehavior(key).execute(component, time);
答案 0 :(得分:0)
在查看整个项目时,无法判断瓶颈是否经常加载和编译Groovy代码,或者是否在加载后运行实际的Groovy代码。如果您的问题是,一旦Groovy代码加载到您的游戏中,执行需要花费很长时间才能看看Groovy++我不确定它的工作情况如何,因为它仍处于早期阶段,但如果这是一个学习项目它可能足够稳定。