Я пишу игру, используя библиотеку Slick2D. Недавно я добавил экран загрузки с использованием отложенной загрузки. Я использую класс Music для загрузки файлов OGG, которые будут использоваться в качестве музыки. Они занимают слишком много времени для загрузки. Я просмотрел wiki для получения дополнительной информации о отложенной загрузке. Я обнаружил:Потоковые ресурсы (Slick2D)
Ни один ресурс не должен занимать столько времени, чтобы загрузить его, чтобы он не обновлялся в течение значительного промежутка времени (если это так, то ресурс, вероятно, должен быть передан в любом случае :)).
Так что я изменил мой класс меню следующим образом (это просто пример, и я ухожу совсем немного):
public class MainMenu extends BasicGameState{
private Music[] theme = new Music[1];
public void init(GameContainer gameContainer, StateBasedGame stateBasedGame) throws SlickException{
InputStream[] musicStream = {ResourceLoader.getResourceAsStream("/path/to/theme1.ogg")}
try{
theme[0] = new Music(musicStream[0],"path/to/theme1.ogg");
}catch (Exception e){
e.printStackTrace;
}
}
(rest of class)
Музыкальный массив представляет собой массив org.newdawn.slick.Music
Поэтому я думал, что сделал бы то, что уменьшило бы время загрузки. Однако при загрузке потребовалось столько же времени, но вместо того, чтобы показывать файл в качестве текущего ресурса, он показывал поток.
Я хотел бы знать, как сделать один или оба из следующих действий:
- потоке ресурсов для сокращения времени загрузки, как следует из вики.
- Загружайте только выбранные ресурсы и загружайте больше при смене состояний (загружайте музыку в игру только при вводе состояния игры и т. Д.).