Foros del Web » Programación para mayores de 30 ;) » Java »

Movimiento de coordenadas

Estas en el tema de Movimiento de coordenadas en el foro de Java en Foros del Web. Buenos días, Tengo dos clases : Tablero y Blinky (Blinky es un personaje del juego de Pacman) Quiero que Blinky se mueva por Tablero a ...
  #1 (permalink)  
Antiguo 14/05/2014, 05:30
 
Fecha de Ingreso: diciembre-2007
Mensajes: 24
Antigüedad: 17 años
Puntos: 0
Movimiento de coordenadas

Buenos días,

Tengo dos clases : Tablero y Blinky (Blinky es un personaje del juego de Pacman)

Quiero que Blinky se mueva por Tablero a cada golpe de timer y se ponga en la posición correcta...

La cosa es que Blinky se mueve, entra por los metodos necesarios, pero no veo los movimientos en pantalla ( con los System.out.print... si veo que las coordenadas cambian)

¿Podríais ayudarme?

Gracias

Código:
public class Blinky
{
String nImagen;
Image imagen;
int x,y,dx,dy,width,height,fila,columna,reg,posX,posY,filaP,columnaP;
boolean situacion=true;
Mapa mapa;
int [][] tramado;
public String  move;
int aux=1;
Tablero tablero;
Pacman pacman;
    public Blinky(Mapa mapa)
    {
     
    	
   	this.mapa=mapa;
    	fila=1;
    	columna=4;
    	pacman=new Pacman(mapa);
        nImagen="blinky.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);
        controlarMovimientos(situacion);
    }

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 void controlarMovimientos(boolean situacion)
{
	if (moverVertical(tramado)&& (moverVerticalArriba(tramado)))
	{
	fila=fila+1;
			//System.out.print("BEBE"+tramado[fila][columna]);
		if (tramado[fila][columna]==0)
		{
			System.out.print("pared");
			moverHorizontalIzq(tramado);
			if(!moverHorizontalIzq(tramado))
			{
				moverVerticalArriba(tramado);
			}
			
		}
		else
		{
			  moverHorizontal(tramado);	
		}
		
		 if  ((moverHorizontal(tramado)==false) || (moverHorizontalIzq(tramado)==false))
	{
		fila=fila+1;
			if(tramado[fila][columna]==0)
			{
				System.out.print("Cero");
			}
		//columna=columna+1;
	//	System.out.print("entra en else");
		moverVertical(tramado);
		
	}
	}
}

//Faltan metodos pero no creo que sea necesario  copiarlos


i
public class Tablero extends JPanel implements ActionListener
{
Pacman pacman;
Clyde clyde;
Blinky blinky;
Timer timer;
Mapa plano;
int posX=10;
int posY=10;
int fila,columna;
int [][] mapa;    
boolean movimientos;
    public Tablero()
    {
       addKeyListener( new Tadaptadora());
        mapa= new int [11][20];
        plano= new Mapa();
        setFocusable(true);
        pacman=new Pacman (plano);
        clyde= new Clyde (plano);
        blinky= new Blinky(plano);
        setBackground(Color.black);
        timer=new Timer(30,this);
        movimientos=false;
        timer.start();
      rellenar ();
    }

public void paint (Graphics g) // Dibujamos los objetos
{
super.paint(g);


     for (int i=0; i<11; i++)
            {
                for (int j=0; j<20; j++)
                {   
                 
                   switch(mapa[i][j])
                    {
                        case 0:
                          g.setColor(Color.blue);
                          g.fillRect(j*25,i*25,25,25);
                        break;
                        case 1:
                          g.setColor(Color.black);
                          g.fillRect(j*25,i*25,25,25);
                          g.setColor(Color.gray);
                          g.fillOval(j*26,i*26,5,5);
                        
                        break;
                        case 2:
                          g.setColor(Color.black);
                          g.fillRect(j*25,i*25,25,25);
                          g.setColor(Color.gray);
                          g.fillOval(j*26,i*26,8,8);
                        break;
                       
                        default:
                    }
                  
                }
               
                 	 Graphics2D g2d=(Graphics2D) g;
                 	
                 	
                 	 	g2d.drawImage(pacman.getImage(),pacman.getColumna()*25,pacman.getFila()*25,this);
                 	 	g2d.drawImage(blinky.getImage(),blinky.getColumna()*25,blinky.getFila()*25,this);

             
            }
         
    
}
public void actionPerformed (ActionEvent e) //Cuando el timer salta refresca los valores de los objetos
{
	
	columna=pacman.getColumna();
	fila=pacman.getFila();
	mapa[fila][columna]=4;
	/*columna=blinky.getColumna();
	fila=blinky.getFila();
	mapa[fila][columna]=3;*/

repaint();
}


private class Tadaptadora extends KeyAdapter //clases privadas para los eventos de teclado
{
    public void  keyReleased (KeyEvent e)
        {
            pacman.keyReleased(e);
        }
   public void keyPressed (KeyEvent e)
        {
             
            pacman.keyPressed(e);
        }
}

}

Etiquetas: clase, coordenadas, metodo, movimiento, objeto, string, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:52.