Stabilirea unei imagini de fundal într-un joc simplu de java

Fac primul meu joc simplu, care arata ca Space Invaders.

Am folosit vopsea pentru a-mi desena eroul pe JPanel. Acum cred că dacă este posibil, într-un mod simplu, să adăugați o imagine de fundal pe JPanel-ul meu.

ImageIcon img = new ImageIcon(this.getClass().getResource("back.gif"));
Image image = img.getImage();
setDoubleBuffered(true);    
hero = new Hero("hbarrel.gif",350,500); 

public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D)g;
    g2d.drawImage(hero.getImage(), hero.getX(), hero.getY(), this);
    g2d.drawImage(image,0,0,this);
   //Toolkit.getDefaultToolkit().sync();
    g.dispose();
}

Deci, asta este: am încercat să-mi folosesc fundalul img ca img ero, și funcționează! dar când folosesc codul de deasupra, doar îmi pictează eroul img .... deci nu este o problemă de poziție a resurselor.

0
Pentru ajutor mai rapid, postați un SSCCE .
adăugat autor Andrew Thompson, sursa
Ar trebui să înlocuiți vopseauaComponent() în swing, mai degrabă decât vopsea (). Dar problema actuală nu este legată de asta, cred. Puteți verifica dacă calea "image.jpg" este corectă și imaginea este încărcată corect.
adăugat autor Hakan Serce, sursa

2 răspunsuri

Înlocuiți metoda paintComponent (Graphics) și folosiți Graphics.drawImage() pentru a face acest lucru în propria componentă personalizată.

3
adăugat
arată doar imaginea mea "erou", nu imaginea de fundal. eu am
adăugat autor Carpo23, sursa
Îmi pare rău că acesta este adevăratul meu comentariu:
adăugat autor Carpo23, sursa
vedeți editarea mea de mai sus :)
adăugat autor Carpo23, sursa
Poți posta un cod, așa că putem ajuta.
adăugat autor Hakan Serce, sursa

Încercați să picteze mai întâi imaginea de fundal și apoi eroul, astfel încât să aveți un erou deasupra imaginii de fundal

0
adăugat