Libgdx HTML5 AnimationScheduler Длина равна нулю

Я создал игру libdx, и она отлично работает в версиях для Android и ПК. В игре у меня есть птица, которая летает вокруг и должна избегать других объектов. Если он касается объектов, игра окончена и появляется экран окончания игры.

В моем приложении GWT при первом появлении экрана завершения игры у меня нет проблем, но если я перезапущу игру и снова запущу, я получаю сообщение об ошибке: Libgdx HTML5 AnimationScheduler Длина равна нулю

В консоли Google Chrome ошибка возникает в строке «throw new RuntimeException(t)» javascript. Я менее знаком с Javascript. Кто-нибудь сталкивался с подобной проблемой раньше с Animation Scheduler?

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));
            }
        });
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
40
1

Ответы 1

Решил... оказывается, в моем методе dispose() я избавлялся от звука из другого класса, а не воссоздавал звук. Поэтому я избавлялся от нулевого звука, который вызывал ошибку.

Другие вопросы по теме