Ola a todos e me desculpem por mais uma duvida bem newbie aqui no forum.
Andei pesquisando e estou precisando para meu jogo um metodo de carregar imagem que garanta que as imagem foram carregadas antes de sair dele.
Fiz uma classe que é um gerenciador de recursos e ela possui varios atributospublic static Image que sao as imagens do meu jogo e eu crio uma instancia desse classe bem no inicio do jogo. Fiz desse modo porque percebi que assim vou ler da memoria apenas uma vez tornando o jogo mais rapido.
O problema é que as vezes elas estao sendo usadas antes de terem sido carregadas =/… Um exemplo do modo como tenho feito esta abaixo:
Image[] naveInimiga = new Image[7];
for (int i = 0; i < naveInimiga.length; i++) {
filename = "/recursos/imagens/pac" + i + ".png";
url = GerenciadorDeRecursos.class.getResource(filename);
naveInimiga[i] = Toolkit.getDefaultToolkit().getImage(url);
naveInimiga[i] = naveInimiga[i].getScaledInstance(50, 50, Image.SCALE_DEFAULT);
}
Dai li em alguns lugares que o MediaTracker faz load de imagens porem não garante que ela ja foi carregada… E tambem li que o ImageIO.read(url) garante que a imagem foi carregada(ele para o programa e espera ateh carregar).
Porem meu professor usou o MediaTracker da seguinte maneira para carregar com garantia que foi carregada:
[code] Image imagem = new Image();
String imagefile = “/images/block5.png”;
URL url = Item.class.getResource(imagefile);
imagem = Toolkit.getDefaultToolkit().getImage(url);
try {
MediaTracker mTracker = new MediaTracker(labirinto);
mTracker.addImage(imagem, 1);
mTracker.waitForID(1);
} catch (InterruptedException ex) {
Logger.getLogger(Bloco.class.getName()).log(Level.SEVERE, null, ex);
}[/code]
Agora minha real duvida é se o ImageIO realmente para o programa até a imagem ser carregada… Qual o melhor maneira para garantir o carregamento de diversas imagens bem no inicio do programa?
Se alguem puder responder fico muito grato,
Abraços