Carregamento de Imagens (jogos)

Bom dia,

Estou começando a estudar programação de jogos em java e estou com algumas dúvidas referentes ao carregamento de imagens. Gostaria da ajuda de vocês com um código simples para o carregamento das imagens (carregar a imagem e pintar no JPanel). O loop e as threads eu já aprendi, oque realmente está me pegando são as imagens. Consegui usar o ImageIcon mas pelo que li o pessoal não usa muito isso para jogos e sim o BufferedImage com Toolkit ( se estiver errado me avisem). Tentei pelos tutoriais do ponto v do Vini Godoy mas também não consegui.

Acho que o que estou precisando é de um exemplo. Sem querer abusar da boa vontade de ninguém. :oops:

Agradeço desde já a ajuda!

PS: Não quero usar applets.

Olá usar um JLabel e seta ela como ícone esse será sua imagem e ai você adiciona ela a sua JPainel…

ImageIcon logo = new ImageIcon("newton.jpg"); JLabel logotipo = new JLabel(logo);
http://javafree.uol.com.br/topic-880985-Mudar-posicao-do-JLabel-com-imagem.html

Mas JLabel seria uma boa alternativa para se usar dentro do universo dos jogos? Pois como jogos trabalham com colisão eu precisaria de algo mais preciso, e também pelo fundo transparente das imagens que não sei se é possível colocar na JLabel.

pra jogos utilize bufferedImage…

BufferedImage imagem = ImageIO.read(new File("imagem.png"));

abraços

[quote=lucasirc]
pra jogos utilize bufferedImage…

BufferedImage imagem = ImageIO.read(new File("imagem.png"));

abraços[/quote]

Lucas, muito obrigado pela resposta. E na hora de utilizar o draw? Sempre quando vou fazê-lo dá vários erros.

Grato!

@Edit

Meu código está assim

[code]public class TesteImg {

public void Janela() {
	JFrame frame = new JFrame();
	frame.setSize(400, 400);
	frame.setVisible(true);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	loadImage();

}

public BufferedImage imagem;

public void loadImage() {
	try {
		imagem = ImageIO.read(new File("teste.png"));
	} catch (IOException e) {

	}

}

public void draw(Graphics g) {
	g.drawImage(imagem, 0, 0, null);
}

}[/code]

E o main::

[code]public class TestImgTest {

public static void main(String[] args) {
	TesteImg ti = new TesteImg();
	ti.Janela();

}

}[/code]

E mesmo assim a imagem não aparece. O que estou fazendo de errado?

como voce esta fazendo para desenhar?
provavelmente vc tem um Graphics (http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/Graphics.html)

utiliza o drawImage()

//...
BufferedImage imagem = ImagemIO.read( new File("imagem.png"));
graphics.drawImage(imagem, 0,0, null);
//...

abraço

Lucas, eu estou utilizando o graphics.drawImage. Como pode ver aqui:

public void draw(Graphics g) { g.drawImage(imagem, 0, 0, null); }

Linhas 23 à 25 do código.
Utilizando desse jeito é errado?

Grato! E me desculpe a ignorância, mas estou enfrentando uma grande barreira com essas imagens.

Nunca diga “dá vários erros”. É muito melhor dizer que erros.

No caso, você tem um problema. O método draw nunca é chamado. Conforme você deve ter visto nos meus tutoriais, você deveria estar sobrescrevendo o método paint.

ViniGodoy,
Me desculpe pela ignorância, não citei os erros pois a cada vez que reescrevia o código encontrava um erro diferente, logo acabei me perdendo no meio disso tudo. Vou tentar seguindo seus tutoriais novamente. Agora imagino já estar um pouco mais preparado.

Grato!

Veja um exemplo mega simples.

ViniGodoy,

Muito obrigado pela ajuda, consegui fazer o carregamento seguindo seu exemplo. Vou implementar no meu código e assim que terminar posto o resultado aqui.

Obrigado a todos que me responderam.