Olá pessoal, estou quase terminando meu jogo 2D, que é um pong, igual a aquele antigo que era rodado em fliperama. Peço que tenham um pouco de paciência, já que sou iniciante e onde moro não há cursos de Java (2D).
O abacaxi é o seguinte: instanciei uma imagem, chamei-a de backg e chamo ImageIO para que ele a leia e lhe “dê” classe e recurso (acho que é isso !), num arquivo que está na pasta e se chama “backg.png”, que tem 700x450 px que é o tamanho do jogo mesmo.
Na linha 46 eu chamo o método drawImage(backg, 0, 0, null);
para que ele desenhe a imagem.
Eis a classe:
package pong;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
import javax.swing.Timer;
@SuppressWarnings("serial")
public class Fundo extends JPanel implements ActionListener {
private Image backg;
private Paddleft pad = new Paddleft();
private Timer timer;
public Fundo() throws IOException{
setFocusable(true);
addKeyListener(new Fundo.KeyboardAdapter());
try {
backg = ImageIO.read(getClass().getResource(
"backg.png"));
} catch (IOException e) {
throw new RuntimeException(
"A imagem de fundo não pode ser carregada!", e);
}
timer = new Timer(5, this);
timer.start();
}
@Override
public void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(backg, 0, 0, null);
g2d.drawImage(pad.getImage(), pad.getX(), pad.getY(), this);
g2d.setBackground(Color.WHITE);
g.dispose();
}
@Override
public void actionPerformed(ActionEvent e) {
pad.move();
repaint();
}
private class KeyboardAdapter extends KeyAdapter{
@Override
public void keyPressed(KeyEvent e) {
pad.keyPressed(e);
}
}
}