10/05/2014, 09:14
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 24
Antigüedad: 17 años, 1 mes Puntos: 0 | |
Pacman recorrer mapa sin atravesar paredes Buenas tardes,
Tengo que hacer un PACMAN y me encuentro algo colgada... ya que mi PACMAN aunque se mueve por la matriz no consigue ver paredes...
Os cuelgo el código a ver si me podéis ayudar... Se supone que en el valor de la matriz 0 es cuando hay pared, y el resto... el resto de cosillas..
Código:
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.KeyEvent;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
public class Pacman
{
String nImagen;
Image imagen;
int x,y,dx,dy,width,height,fila,columna,reg,posX,posY;
boolean exito;
Mapa mapa;
int [][] tramado;
public String move;
int aux=1;
Tablero tablero;
public Pacman(Mapa mapa)
{
this.mapa=mapa;
fila=1;
columna=8;
nImagen="pacman.jpg";
tramado= new int[11][20];
ImageIcon img= new ImageIcon ( this.getClass().getResource(nImagen));
imagen=img.getImage();
width=imagen.getWidth(null);
height=imagen.getHeight(null);
crearTramado(tramado);
}
public Rectangle getSize()
{
return new Rectangle (x,y, width,height);
}
public Image getImage()
{
return imagen;
}
public void crearTramado (int [][] tramado)
{
for (int i=0; i<tramado.length; i++)
{
for (int j=0; j<tramado[i].length; j++)
{
tramado[i][j]=mapa.getMap(i,j);
//System.out.print(tramado[i][j]);
}
}
}
public int getFila()
{
return fila;
}
public int getColumna ()
{
return columna;
}
public void checkMovimientos (String movimiento,int [][]tramado)
{
fila=getFila();
columna=getColumna();
switch (movimiento)
{
case "i":
System.out.print(tramado[fila][columna]);
if (tramado[fila][columna--]!=0)
{
tramado[fila][columna]=4;
}
break;
/*
case "d":
if (tramado[fila][columna]!=1)
{
tramado[fila][columna++]=4;
}
break;
case "a":
if (tramado[fila][columna]!=1)
{
System.out.print(fila);
//tramado[fila--][columna]=4;
}
break;*/
case "b":
if (tramado[fila--][columna]!=0)
{
//System.out.print(fila);
//System.out.print(columna);
tramado[fila++][columna]=4;
//System.out.print(fila,columna);
}
else
{
//System.out.print(fila);
}
break;
default:
}
}
public void keyPressed (KeyEvent e)
{
int key=e.getKeyCode();
switch(key)
{
case KeyEvent.VK_LEFT:
move="i";
checkMovimientos(move,tramado);
break;
case KeyEvent.VK_RIGHT:
move="d";
checkMovimientos(move,tramado);
break;
case KeyEvent.VK_UP:
move="a";
checkMovimientos(move,tramado);
break;
case KeyEvent.VK_DOWN:
move="b";
checkMovimientos(move,tramado);
break;
default:
}
}
public void keyReleased (KeyEvent e)
{
int key=e.getKeyCode();
switch(key)
{
case KeyEvent.VK_LEFT:
dx=0;
break;
case KeyEvent.VK_RIGHT:
dx=0;
break;
case KeyEvent.VK_UP:
dy=0;
break;
case KeyEvent.VK_DOWN:
dy=0;
break;
default:
}
}
}
. |