加速Java中的嵌入式Groovy

时间:2011-05-06 19:40:17

标签: java groovy

我正在尝试为我正在努力的游戏引擎创建脚本化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);

1 个答案:

答案 0 :(得分:0)

在查看整个项目时,无法判断瓶颈是否经常加载和编译Groovy代码,或者是否在加载后运行实际的Groovy代码。如果您的问题是,一旦Groovy代码加载到您的游戏中,执行需要花费很长时间才能看看Groovy++我不确定它的工作情况如何,因为它仍处于早期阶段,但如果这是一个学习项目它可能足够稳定。