2013-10-11 2 views
1

Я пишу игру, используя библиотеку 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

Поэтому я думал, что сделал бы то, что уменьшило бы время загрузки. Однако при загрузке потребовалось столько же времени, но вместо того, чтобы показывать файл в качестве текущего ресурса, он показывал поток.

Я хотел бы знать, как сделать один или оба из следующих действий:

  1. потоке ресурсов для сокращения времени загрузки, как следует из вики.
  2. Загружайте только выбранные ресурсы и загружайте больше при смене состояний (загружайте музыку в игру только при вводе состояния игры и т. Д.).

ответ

1

Я случайно наткнулся на ответ.

public void init(GameContainer gc, StateBasedGame game) throws SlickException{ 
    try{ 
     theme[0] = new Music("path/to/theme1.ogg",true); 
    }catch (Exception e){ 
     e.printStackTrace; 
    } 
} 

Добавление true после ссылки на файл указывает, что вы хотите, чтобы поток аудио.