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ì:
Per poi modificarne la posizione con: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);
}
}
Tuttavia sul pannello mi rimangono entrambe le immagini nelle due posizioni...la prima non mi si cancella...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();
Che ne pensate? E' il modo giusto per far muovere un'immagine su di un pannello??
Esistono altri modi più intelligenti??
Grazie, ciao!!![]()

Rispondi quotando