[英]Speed up Embedded Groovy in Java
我正在嘗試為自己正在玩的游戲引擎創建腳本化AI。 我決定嘗試使用Groovy創建.groovy行為文件,將其作為GroovyClasses加載,然后轉換為我的行為接口。 問題是,這非常慢。 我在每個游戲周期都執行更新,而腳本化的AI類將程序抓取。 我的問題是,有沒有辦法提高嵌入式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代碼,或者一旦加載就在運行實際的Groovy代碼。 如果您的問題是,一旦在游戲中加載了Groovy代碼后,執行該代碼就需要花費很長時間,那么請看一下Groovy ++ ,因為它仍處於早期階段,所以我不確定它的運行情況如何,但是如果這是一個學習型項目,則可能對你足夠穩定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.