我还在LibGDX 论坛上发布了这个问题。
嘿!对于我的论文,我正在编写一个 DSL 来描述图片的外观。这些图片将由 libGDX 根据 DSL-Input 绘制。到目前为止,jetbrains MPS (v. 3.0) 和最新的 libGDX 版本正在使用中。我的实际问题是:如何设计我的 MPS 语言和 java-libGDX-picture-generator 之间的互连。
Jetbrains MPS 没有广泛传播,但我敢肯定,我的问题可以在不知情的情况下解决。在 DSL 中,生成器旨在构建一个可以执行的类(public static void main)。这里有几个方法调用来开始图片生成。将其视为 generatePicture(200px, 150px, "blue") (它要复杂得多,但我认为这对我的问题并不重要)。
在 libGDX 中,我有几个启动器(尤其是 DesktopLauncher),这些是程序的主要类,即已启动的那些。目前,启动器启动另一个类(我将其命名为“Main”),这里是方法调用。libGDX 程序通过 jar 工件插入到 MPS 中,因此它的方法可以在我的 DSL 中使用。
什么是让我的 DSL 代码启动我的 libGDX 程序的好解决方案?我必须进行所有这些方法调用并启动启动器。我考虑了一个额外的类来初始化启动器并进行调用,或者尝试将来自 DSL 的调用插入到 jar 类中。是否有任何类似的问题或遇到这个问题的人?我相信我会以某种方式让它发挥作用,但我对一个好的和顺利的解决方案很感兴趣。
编辑
问题是我确定我需要DesktopLauncher 及其配置来在我的PictureGenerator 中运行libGDX 的东西。
编辑 2 - 第一种方法
这再次与 MPS 相关。我曾考虑使用 MPS 生成器生成 Picture 类,但运行 Launcher 类。这有可能吗?要从解决方案运行一个类,它需要实现 IMainClass,但 Launcher 不能。启动器看起来总是一样的。是否有运行另一个类而不是生成的类的功能?
或者在 libGDX-site 上:是否可以合并启动器和图片类以插入配置?