2013-10-07 126 views
0

我目前正在編寫一個隨着時間的推移逐漸變大的Java遊戲。 所以現在我正處在一個更動態的代碼實現變得非常方便的地步。 我決定看看Jython,並且已經使用了一些簡單的腳本。 (順便說一句,我使用最新的獨立Jython,如果它很重要)。Jython中Java項目的訪問方法

現在我的問題是:我可以執行在所提到的Java項目中執行的Jython腳本中Java項目中的方法嗎?

這是我要問什麼,以便更好地理解僞代碼的例子:

比方說,我有一個腳本,如下所示:

​​

和包含的Java類方法 「killPlayer()」:

public void killPlayer() { 
    player.setAlive(false); 
} 

雖然Jython腳本被如下執行

PythonInterpreter pyInterp = new PythonInterpreter(); 
pyInterp("script.py"); 

是否有這種可能?

在此先感謝和抱歉,我英文不好^^

回答

1

可以導入Java類中的Jython像這樣:

from javax.swing import JFrame 
f = JFrame('Hello, World!', defaultCloseOperation=JFrame.EXIT_ON_CLOSE, size=(300, 300), locationRelativeTo=None) 
f.setVisible(True) 

source

所以我的建議是使用Java代碼作爲庫並在Python中實現「設置所有內容」。這樣,您就不需要找出從腳本中查找Java對象實例的方法。

如果你需要查找實例,我建議在某個地方創建一個靜態全局變量,讓你可以訪問暴露重要遊戲實例的類。在Java代碼中,您可以使用Map中的名稱爲Jython腳本註冊實例。

+0

謝謝!我沒想到我可以輕鬆導入我自己的軟件包和類。 – Deconimus