【发布时间】:2019-03-14 15:54:30
【问题描述】:
所以,我真的不知道如何正确表述这一点,但我会尽力而为。
我正在编写一个游戏引擎(实际上并不是为了任何事情,我正在尝试很多方法来让某些事情通过编程方式来练习)。为此,我想要编写脚本。我知道如何在 Java 中添加脚本,但我见过使用多种语言的游戏引擎。
所以我想要的是添加与 Java 进程一起运行并且可以与 Java 对象交互的 python 脚本。
像这个有一些参数的Java对象(只是一个例子)
public class Entity {
Script script = new Script ( "example.py" );
loc_x = 0;
loc_y = 0;
loc_z = 0;
public void update () {
script.run ();
}
}
python 脚本是这样的
loc_x += 1
loc_z = loc_x
或
entity.loc_x += 1
entity.loc_z = entity.loc_x
我只是无法实现这一点。如果这个问题已经被问过,请告诉我。 If Runtime.getRuntime ().exec ( "example.py" ); 是我最好的选择,这很好。在那种情况下,我只想知道如何共享这些参数。
另外,如果另一种语言(例如;LUA)更适合这样的事情,那也没关系。我对这个问题完全空白。
【问题讨论】:
-
更常见的做法是将 Python 集成到用 C 或其他可以自然与 C API 交互的语言编写的程序中。使用 Java,嵌入 Python 的选项更加笨拙或过时(如 Jython)。
-
那么你会推荐我使用 Python 以外的其他语言,还是从 Java 切换 () 到 C# 之类的其他语言?
-
我不知道现在人们想要在 Java 程序中编写脚本时会做什么。也许他们只是写更多的Java。也许他们使用 Scala 或其他一些 JVM 语言。也许他们使用 Jython。也许他们将 CPython 嵌入了 JNI 或 JNA 之类的东西。有很多选择,我没有尝试过其中的大部分。
-
Scala 对我来说是一门新语言。我查找了它并与 java 进行了惊人的集成,但它并没有真正让我像 python 那样兴奋......经过进一步的搜索,我发现了一些非常简单和好的东西。有时大声说出一些事情或(在互联网上)发布问题似乎会使一个人的大脑开始行动有所不同。我会尽快发布我自己的答案,以防其他人在项目中需要这个。