【发布时间】:2014-02-10 18:26:13
【问题描述】:
我正在为我的游戏创建关卡编辑器,但在使用带有 JFrame 的 LwjglCanvas 时遇到了问题。我使用 JFrame(不是 LwjglFrame)来保持引擎和关卡编辑器尽可能独立。
我有两个 JAR:WorldEditor.jar 和 GameEngine.jar。在 WorldEditor 中,我有一个名为“test”的按钮,假设加载 GameEngine.jar(如果尚未加载)并启动(如果已加载则重新启动)到应用程序主框架中。
实际上,我所做的是将 WorldEditor 游戏容器(例如 JFrame 中的 JPanel)注入游戏应用程序,并使用Gdx.app.postRunnable 将 lwjglcanvas 添加到注入的游戏容器中:
世界编辑端:
JPanel _gameContainer = new JPanel(); // is inside a JFrame
MyGame game = loadGame(_gameContainer); // load the GameEngine JAR, and retrive the game
GameEngine 方面:
// container is the _gamecontainer of above
public void createGame(final Container gameContainer)
{
LwjglCanvas canvas = new LwjglCanvas(myapp, myconfig);
Gdx.app.postRunnable(new Runnable()
{
public void run()
{
gameContainer.add(canvas.getCanvas());
}
});
}
事实上,postRunnable 从未被调用(由于应用程序在可见之前不被调用,我错了吗?)
我已经尝试了很长时间,但没有结果......
有人知道我可以做些什么来解决这个问题吗?或者至少是另一种(让我们说更简单)的方法来做到这一点?
【问题讨论】: