Все, что я могу сделать, это угадать, что замедляет вашу игру.
Первое, что я вижу, это container.setBackground(new TextureRegionDrawable(new TextureRegion(new Texture(AssetPaths.BLUE_BACKGROUND))));
Каждый раз, когда вы переключаете экраны, вызывается этот метод.Самое длинное в этой линии, вероятно, new Texture(AssetPaths.BLUE_BACKGROUND)
.Делать это гораздо лучше, чем иметь статические ресурсы, но это занимает много времени.
Одна вещь, которую вы можете сделать, это использовать Скин .Это способ, которым libgdx организует спрайты, шрифты и почти все остальное.Реорганизовать код, чтобы он использовал скин, может быть сложно, но, в конце концов, оно того стоит.При правильном использовании вместо нескольких файлов со спрайтами все спрайты будут скомпилированы в файл типа master, поэтому должен быть загружен только один файл.
Вот пример того, как я его использую.Как видите, у меня есть skin.atlas, skin.json, skin.png.К счастью для вас, вам не нужно создавать их вручную. Как использовать TexturePacker Также полезно.
Если вы действительно не хотите изменять свою игру на использование скинов, вы всегда можете хранить Drawables в одном объекте и передавать этот объект.вокруг каждого экрана, поэтому он не загружает спрайты при каждом изменении экрана.