我正在嘗試爲遊戲引擎創建腳本式AI,以便爲樂趣而努力。我決定嘗試使用Groovy來創建。GroovyClasses中加載的.groovy行爲文件,然後將其轉換爲我的行爲界面。問題是,這是令人難以置信的緩慢。我正在執行每個遊戲週期的更新,並且腳本化的AI類將程序抓取。我的問題是,有沒有辦法加快嵌入式Groovy速度,還是有更好的方式來做我正在做的事情?謝謝你的幫助。加速Java中的嵌入式Groovy
下面是相關代碼:
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);
我可以問一下你在Groovy中使用這些行爲文件的好處嗎?是否需要某種動態編輯? – 2011-05-06 20:03:02
你確定你正在執行的groovy代碼正在做你期望的速度?也許代碼很慢,這不是它是groovy腳本代碼的錯。 – Buhb 2011-05-06 20:12:10
@java飲酒我現在不需要任何東西。這只是爲了好玩。我主要是通過這本書http://www.amazon.com/Artificial-Intelligence-Kaufmann-Interactive-Technology/dp/0124977820的方式工作,他們有一個關於腳本AI的部分,我想與groovy一起玩。他們在談論lua(類似於WOW如何創建附加組件),所以我認爲groovy會非常適合腳本化的AI。 – Loomer 2011-05-06 20:48:02