Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mate libGDX和Jetbrains MPS_Java_Libgdx_Mps - Fatal编程技术网

Java Mate libGDX和Jetbrains MPS

Java Mate libGDX和Jetbrains MPS,java,libgdx,mps,Java,Libgdx,Mps,我也把这个问题贴在了网上 嘿!在我的论文中,我正在写一个DSL来描述图片的外观。这些图片将由libGDX根据DSL输入绘制。 到目前为止,jetbrains MPS(3.0版)和最新的libGDX版本正在使用中。我的实际问题是:如何设计我的MPS语言和java libGDX图片生成器之间的互连 Jetbrains MPS并没有广泛传播,但我确信,我的问题可以在不知情的情况下得到解决。 在DSL中,生成器设计用于构建可执行的类(publicstaticvoidmain)。下面是开始图片生成的几个方

我也把这个问题贴在了网上

嘿!在我的论文中,我正在写一个DSL来描述图片的外观。这些图片将由libGDX根据DSL输入绘制。 到目前为止,jetbrains MPS(3.0版)和最新的libGDX版本正在使用中。我的实际问题是:如何设计我的MPS语言和java libGDX图片生成器之间的互连

Jetbrains MPS并没有广泛传播,但我确信,我的问题可以在不知情的情况下得到解决。 在DSL中,生成器设计用于构建可执行的类(publicstaticvoidmain)。下面是开始图片生成的几个方法调用。把它想象成generatePicture(200px,150px,“蓝色”)(它要复杂得多,但我认为这对我的问题并不重要)

在libGDX中,我有几个启动器(特别是DesktopLauncher),它们是程序的主类,是启动的类。此时,启动器启动另一个类(我将其命名为“Main”),下面是方法调用。 libGDX程序是通过jar工件插入MPS的,所以它的方法可以在我的DSL中使用

让我的DSL代码启动libGDX程序的一个好解决方案是什么? 我必须进行所有这些方法调用并启动启动器。我考虑了另外一个类来初始化启动器并进行调用,或者尝试将来自DSL的调用插入jar类。 是否存在类似的问题,或者是否有人面临这个问题?我相信我会以某种方式使它发挥作用,但我对一个好的、顺利的解决方案感兴趣

编辑 问题是我不确定我需要DesktopLauncher及其配置来运行PictureGenerator中的libGDX

编辑2-第一种方法 这又是有关议员的问题。我想用MPS生成器生成Picture类,但运行Launcher类。 这有可能吗?要从解决方案运行类,它需要实现IMainClass,但启动器无法实现。发射器看起来总是一样的。是否有运行生成类以外的其他类的功能


或者在libGDX站点上:是否可以合并启动器和图片类以插入配置?

查看
robot_-Kaja
示例(在
MPSSamples.3.3\robot_-Kaja
中)。
Script
概念实现了
IMainClass
接口,可以运行此概念的实例。您可以右键单击
jetbrains.mps.samples.Kaja.sandbox
解决方案中的任何脚本,您将在弹出菜单中看到运行选项。单击它将运行为此脚本生成的代码


在您的例子中,您可能还有一些类似于脚本的顶级概念,它生成到Java(baseLanguage)
Main
类中。只要实现这个概念,就可以直接从MPS运行它。

好的,我按照第二次编辑的想法完成了

  • 在MPS中生成一个文件
  • 可以执行生成的文件
  • 使用libgdxjar文件
在MPS中,我使用一个内部类生成以下类

public class DesktopLauncher {
  public static void main(string[] args) {
    LwjglApplicationConfiguration config = new LwgjlApplicationConfiguration();
    new LwjglApplication(new Picture(), config);
  }

  public static class Picture extends ApplicationAdapter {
    public Picture(){}
    PictureGeneratorImpl generator;

    public void create() {
      generator = new PictureGeneratorImpl();
    }

    public void render() {
      generator.generatePicture();
      generator.exit();
    }

    public void dispose() {
      generator.dispose();
    }
  }
}
作为附加信息:我的libgdxjar包含整个项目(包括核心和桌面)。
我希望这能帮助任何想到将MPS和libGDX结合起来的人。

这是一个完美的部分。问题是要包含libGDX结构。它的主要类是(桌面)启动器,它(通常)不接受参数。这更像是一个libGDX问题,而不是mps问题。对不起,如果我的问题太让人困惑,那么“包含libGDX结构”是什么意思?你能一步一步地描述一下你理想的解决方案是什么样的,现在缺少什么吗?我编辑了我的问题。这是libGDX的正确上下文,这让我无法确定。您是否研究过新的libGDX lwjgl3后端?它允许您一次维护几个窗口,每个窗口都有自己的渲染循环。您是在生成使用libGDX的java代码,还是希望将libGDX作为一种可视化嵌入?从您的问题中,我不太确定您有什么样的用例。我正在生成使用libGDX项目(通过jar文件包含)的java代码@我认为LWJGL3仍然留给我启动我的主/游戏类的启动器。