Я создаю редактор уровней для своей игры, и у меня проблема с использованием 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
никогда не вызывается (из-за того, что приложение не должно быть видимым, я ошибаюсь?)
Я пробовал в течение долгого времени, но никакого результата...
Есть ли у кого-то представление о том, что я могу сделать, чтобы исправить эту проблему? Или, по крайней мере, еще один способ (пусть проще) сделать это?