Я создал игру libdx, и она отлично работает в версиях Android и Desktop.В игре у меня летит птица, и я должен избегать других объектов.Если он соприкасается с объектами, игра окончена, и появляется экран «окончен».
В моем приложении GWT при первом появлении экрана «игра поверх» у меня нет проблем, но если я перезагружаю игру и играю снова, я получаю сообщение об ошибке:
В консоли Google Chrome ошибка возникает в строке «throw new RuntimeException(t)
» javascript.Я менее знаком с Javascript.Кто-нибудь сталкивался с подобной проблемой раньше с планировщиком анимации?
AnimationScheduler.get().requestAnimationFrame(new AnimationCallback() {
@Override
public void execute (double timestamp) {
try {
mainLoop();
} catch (Throwable t) {
error("GwtApplication", "exception: " + t.getMessage(), t);
throw new RuntimeException(t);
}
AnimationScheduler.get().requestAnimationFrame(this, graphics.canvas);
}
}, graphics.canvas);
}
В моем базовом коде Libgdx следующий код строки вызывается, когда птица падает и игра заканчивается, так что, вероятно, там, где происходит ошибка:
Gdx.app.postRunnable(new Runnable() {
@Override
public void run() {
Sounds.gameOverSound.play(SettingsManager.gameVolume);
highScore.stopCounting();
for (Dodgeable dodgeable : dodgeables.activeDodgeables) {
dodgeable.reset();
}
dodgeables.resetSpawnTimes();
for (Sound sound : Sounds.activeSounds){
//Stop all sounds currently playing
sound.stop();
Sounds.activeSounds.remove(sound);
}
//Reset all notifications that are active so they stop displaying
Notifications.ExclamationMark.resetNotifications();
Array<Body> bodies = new Array<Body>();
world.getBodies(bodies);
for (int i = 0; i < bodies.size; i++) {
world.destroyBody(bodies.get(i));
}
dispose();
game.setScreen(new GameOverScreen(game, playServices, databaseAndPreferenceManager, highScore));
}
});