Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/05/2014, 09:14
lutxi
 
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:
                    }
                    
    }
    
}
.