2013-10-07 62 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