0

我目前正在用 Java 编写一个随着时间的推移而变得越来越大的游戏。所以现在我正处于更动态的代码实现将变得非常方便的地步。我决定研究一下 Jython 并让它与一些简单的脚本一起工作。(顺便说一句,我正在使用最新的独立 Jython,如果它很重要的话)。

现在我的问题是:我可以在提到的 Java 项目中执行的 Jython 脚本中执行我的 Java 项目中的方法吗?

这是一个伪代码示例,可以更好地理解我想问的内容:

假设我有一个如下所示的脚本:

def main():
    killPlayer()

main()

还有一个包含方法“killPlayer()”的 Java 类:

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

Jython 脚本执行如下:

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

有这样的可能吗?

在此先感谢并为我糟糕的英语感到抱歉^^

4

1 回答 1

1

您可以像这样在 Jython 中导入 Java 类:

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

来源

所以我的建议是使用 Java 代码作为库并在 Python 中实现“设置一切”。这样,您就不需要想办法从脚本中查找 Java 对象的实例。

如果您需要查找实例,我建议在某处创建一个静态全局变量,以便您可以访问公开重要游戏实例的类。Map然后,您可以在 Java 代码中使用 Jython 脚本的名称注册实例。

于 2013-10-07T15:54:44.840 回答