Ciao!!
Ho realizzato la base dell'applicazione, ovvero ho creato la matrice e realizzato la grafica di base (il labirinto).
Adesso ho un problema...come faccio a far muovere il pacman all'interno del labirinto??
Avevo pensato ad un JPanel trasparente! L'ho realizzato creando il nuovo pannello così:
Codice PHP:
package PACMAN;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class PacManPanel extends javax.swing.JPanel {
BufferedImage image;
int width;
int height;
File f;
Dimension dim;
int x;
int y;
public PacManPanel(int x1, int y1) {
super();
x = x1;
y = y1;
f = new File("src/Resources/PacMan2right.gif");
}
public void setImage(BufferedImage img)
{
this.image = img;
width = img.getWidth();
height = img.getHeight();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
dim = getSize();
//g.setColor(Color.black);
//g.fillRect(0, 0, getWidth(), getHeight());
//g.setColor(Color.red);
try
{
setImage(ImageIO.read(f));
}
catch(Exception e)
{
System.out.println("Errore...");
}
//int x = 20;
//int y = 20;
g.drawImage(image, x, y, null);
}
}
Per poi modificarne la posizione con:
Codice PHP:
pacmanPanel = new PacManPanel(50,50);
pacmanPanel.setBackground(new Color(200,0,0,5));
pacmanPanel.setSize(409, 490);
pacmanPanel.setOpaque(false);
pacmanPanel.setBounds(0, 0, 409, 490);
//jGamePanel.remove(pacmanPanel);
jGamePanel.add(pacmanPanel);
pacmanPanel.repaint();
//pacmanPanel.validate();
Tuttavia sul pannello mi rimangono entrambe le immagini nelle due posizioni...la prima non mi si cancella...
Che ne pensate? E' il modo giusto per far muovere un'immagine su di un pannello??
Esistono altri modi più intelligenti??
Grazie, ciao!!