Garantia de carregamento de imagem

2 respostas
B

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:

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);
             }

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

2 Respostas

ViniGodoy

Sim, use o ImageIO:
http://www.pontov.com.br/site/index.php/java/48-java2d/111-trabalhando-com-imagens

Já que está fazendo jogos, leia o resto dos tutoriais de java do Ponto V!

B

Opa Vini vlw pela resposta =)

Ando lendo sim seu site e alguns posts seu aki no forum(vo tentar logo logo fazer um tilemap que vc ensinou com matriz dispersa hehe) =)
Graças a seu site tb eu coloquei na cabeça que quero fazer um rpg2D onde as caracteristicas de personagens e monstros sejam feitas atravez de script groovy hehehe

Final de semestre agora e logo logo tenho que entregar meu jogo da diciplina de POO, dai vou postar aqui o codigo para todos poderem comentar meus erros de programacar e idéia e conto com sua critica :x.

Criado 13 de novembro de 2010
Ultima resposta 14 de nov. de 2010
Respostas 2
Participantes 2