Я пытаюсь развернуть мою игру libgdx в HTML.В десктопе и Android это работает хорошо.Когда я делаю ./gradlew html:dist
, он прекрасно компилируется, и у меня есть папка dist, которая создается в папке html.Мне удалось запустить игру в браузере:
Однако, когда я нажимаю любую кнопку, которая изменит экран, игра вылетает:
Ошибка:
GwtApplication: исключение: (TypeError): ag [ab] не определено (TypeError): ag [ab] не определено
и в консоли у меня есть:
Ошибка: java.lang.RuntimeException: com.google.gwt.core.client.JavaScriptException: (TypeError): ag [ab] isundefined
Два вопроса ( 1 , 2 ) имеют ту же проблему, но ни один из них не решен.
----- Вот как я могу изменить экран ----
Когда пользователь нажимает на Stats для примера, мой код делает это:
button_stats.addListener(new ClickListener(){
@Override
public void clicked(InputEvent event, float x, float y){
stage.addAction(Actions.sequence(Actions.fadeOut(0.2f), Actions.run(new Runnable(){
@Override
public void run() {
ScreenManager.getInstance().showScreen(ScreenEnum.STATS);
}
})));
}
});
Вот мой менеджер экрана:
public class ScreenManager {
// Singleton: unique instance
private static ScreenManager instance;
// Reference to game
private SpeedRun2Game game;
// Singleton: private constructor
private ScreenManager() {
super();
}
// Singleton: retrieve instance
public static ScreenManager getInstance() {
if (instance == null) {
instance = new ScreenManager();
}
return instance;
}
// Initialization with the game class
public void initialize(SpeedRun2Game game) {
this.game = game;
}
// Show in the game the screen which enum type is received
public void showScreen(com.gangscred.speedrun2.screens.ScreenEnum screenEnum, Object... params) {
// Get current screen to dispose it
Screen currentScreen = game.getScreen();
// Show new screen
Screen newScreen = screenEnum.getScreen(game , params);
game.setScreen(newScreen);
// Dispose previous screen
if (currentScreen != null) {
currentScreen.dispose();
}
}
}
и, наконец, мой screenEnum:
public enum ScreenEnum {
STATS{
public Screen getScreen(SpeedRun2Game game, Object... params){
return new StatsScreen(game);
}
}
----- РЕДАКТИРОВАТЬ -----
Я добавил стиль= 'PRETTY' опция, как предложено моему компилятору gwt, и теперь у меня есть эта ошибка:
Ошибка: java.lang.RuntimeException: com.google.gwt.core.client.JavaScriptException: (TypeError): этот $ static.uniforms [this $ static.currProgram] не определен