To tentando fazer um Pacman em Java. Pra fazer o labirinto eu fiz os desenhos (só 2 ainda, pra teste), criei objetos Parede e fiz um array booleano pra ver quais são áreas de movimento. O problema é que não estou conseguindo mudar o valor das áreas com paredes. Por mais que eu marque 1, tudo continua marcando 0. Alguém poderia me ajudar?
[code]package pacman;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Jogo {
public Jogo() {
MyFrame janela = new MyFrame();
janela.setTitle("Pacman");
janela.setSize(810,900);
janela.setVisible(true);
janela.setDefaultCloseOperation(janela.EXIT_ON_CLOSE);
}
static public void run()
{
Jogo jogo = new Jogo();
}
}
class MyFrame extends JFrame
{
public MyFrame()
{
MyPanel painel = new MyPanel();
painel.setBackground(Color.BLACK);
getContentPane().add(painel);
addKeyListener(painel.c);
}
}
class MyPanel extends JPanel
{
private Image pacmandir = new javax.swing.ImageIcon(getClass().getResource(“Pacman1.png”)).getImage();
private Image pacmanesq = new javax.swing.ImageIcon(getClass().getResource(“Pacman1esq.png”)).getImage();
private Image pacmancima = new javax.swing.ImageIcon(getClass().getResource(“Pacman1cima.png”)).getImage();
private Image pacmanbaixo = new javax.swing.ImageIcon(getClass().getResource(“Pacman1baixo.png”)).getImage();
Comandos c = new Comandos();
Pacman pacman;
Labirinto maze;
Timer timer;
Paredes paredes[] = new Paredes[2];
private int tela[][] = new int [880][900];
private int x, y, indice;
private boolean verificaMover = false;
public MyPanel()
{
pacman = new Pacman(400, 580, c);
maze = new Labirinto();
paredes[0] = new Paredes(40, 340, 40, 55);
paredes[1] = new Paredes(40, 340, 103, 103+15);
/*for(x = 0; x<880; x++)
{
for(y = 0; y<900; y++)
{
tela[x][y] = 0;
}
}*/
for(indice = 0; indice < paredes.length; indice++)
{
for(x = paredes[indice].getXmin(); x<paredes[indice].getXmax(); x++)
{
for(y = paredes[indice].getYmax(); y<paredes[indice].getYmax(); y++)
{
tela[x][y] = 1;
}
}
}
for(x = 0; x < 880; x++)
{
for(y = 0; y < 900; y++)
{
if(tela[x][y] != 1)
{
verificaMover = true;
}
/*if(tela[x][y] == 1)
{
verificaMover = false;
}*/
}
}
for(x = 0; x < 880; x++)
{
for(y = 0; y < 900; y++)
{
if(tela[x][y] == 1)
{
System.out.println(tela[x][y]);
}
}
}
timer = new Timer(3, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(verificaMover == true)
{
pacman.mover();
}
repaint();
}
});
timer.start();
}
@Override
protected void paintComponent(Graphics g2d)
{
super.paintComponent(g2d);
maze.desenharLabirinto(g2d);
if(!c.esquerda && !c.direita && !c.baixo && !c.cima)
g2d.drawImage(pacmandir, pacman.getX(), pacman.getY(), null);
if(c.direita)
g2d.drawImage(pacmandir, pacman.getX(), pacman.getY(), null);
if(c.baixo)
g2d.drawImage(pacmanbaixo, pacman.getX(), pacman.getY(), null);
if(c.cima)
g2d.drawImage(pacmancima, pacman.getX(), pacman.getY(), null);
if(c.esquerda)
g2d.drawImage(pacmanesq, pacman.getX(), pacman.getY(), null);
if(pacman.getY() >=736)
pacman.setY(736);
}
} [/code]
Podem ler a partir do MyPanel. Obrigado…