Voglio mostrare un'immagine GameOver in un gioco di pacman dopo che le vite sono finite. Ma chiamo paintGameOverScreen (Graphics g) e quindi ho bisogno di inizializzare g. C'è un altro modo di fare questo?Come inizializzare la grafica g?
Questa è la mia vita di classe
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
public class Lives{
private int lives;
public Lives() {
lives = 1;
}
public void removeLife() {
lives--;
if(lives==0){
System.out.println("END GAME");
paintGameOverScreen(g);
System.exit(0);
}
}
public void paintGameOverScreen(Graphics g) {
ImageIcon i = new ImageIcon("src\image");
Image image = i.getImage();
int x = 0;
int y = 0;
g.drawImage(image, x, y, 100,100,null);
}
public void paint(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(5*20, 25*20, 100, 30);
g.setColor(Color.BLACK);
String result = "Lives: " + lives;
g.drawString(result, 6*20, 26*20);
}
}
Cosa intendi per "inizializzare g"? La variabile g dovrebbe essere già inizializzata da AWT quando entra nel metodo paint. – ekolis
Invece mantieni lo stato del gioco e dipingi secondo esso –
Se vuoi usare un buffer fuori dallo schermo (come BufferedImage), dipingilo e poi sincronizzalo con l'interfaccia utente quando sei pronto – MadProgrammer