Как правильно разместить приложение libgdx внутри свингового приложения?
Я создаю редактор уровней для своей игры, и у меня возникла проблема с использованием LwjglCanvas с JFrame. Я использую JFrame (не LwjglFrame), чтобы сохранить движок и редактор уровней максимально независимыми. У меня есть два файла JAR: WorldEditor.jar и GameEngine.jar. Внутри WorldEditor у меня есть кнопка с именем «test», которая предполагает загрузку GameEngine.jar (если он еще не загружен) и запуск (перезапуск, если он уже загружен) в основной фрейм приложения. На самом деле я добавляю игровой контейнер WorldEditor (например, JPanel внутри JFrame) в игровое приложение и использую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
никогда не вызывается (из-за того, что приложение раньше не было видно, я не прав?) Я пытался в течение длительного времени, но безрезультатно ...
У кого-нибудь есть идея, что я могу сделать, чтобы решить эту проблему? Или хотя бы другой (скажем, проще) способ сделать это?