Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/10/2013, 04:51
Avatar de CMushroom
CMushroom
 
Fecha de Ingreso: diciembre-2011
Ubicación: Morelos
Mensajes: 99
Antigüedad: 13 años
Puntos: 1
Pregunta Respuesta: Juego chico clases 8 errores

Cita:
Iniciado por Malenko Ver Mensaje
El problema es que estas usando la variable "panel" sin estar declarada ni dentro de la función ni dentro de la clase:

private void drawAll(){
Graphics paper = panel.getGraphics();
paper.setColor(Color.white);
paper.fillRect(0, 0, panel.getWidth(), panel.getHeight());
paper.setColor(Color.black);
defender.draw(panel);
alien.draw(panel);

if (laser != null){
laser.draw(panel);
}

if (bomb != null){
bomb.draw(panel);
}
}


No he puesto el marcado de código de Java para que puedas ver donde usas la variable. Y con la otra función (checkHits) tienes exactamente el mismo problema con "panel".
Gracias quedo asi ya no tiene errore ahora lo que pasa es que no se ejecuta pero lo compila bien de echo pienso que es el timer.start(); si se lo quito aparece el frame pero no sale nada.Gracias parote por eso no lo habia visto

asi quedo el codigo:

Código:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.Timer;

public class newGame extends Frame implements WindowListener{
	
private Graphics paper;
private Defender defender;
private Alien alien;
private Laser laser;
private Bomb bomb;
Timer timer;
JPanel panel;

	public static void main (String[] args){
		newGame Jugar = new newGame();
		Jugar.setSize(600,634);
		Jugar.setVisible(true);
	}
	
	private newGame(){
		setTitle("Invasores del espacio");
		setLayout(new FlowLayout());
		
		defender = new Defender();
		alien = new Alien();
		timer.start();
		this.addWindowListener(this);
	}
	
	private void timer(){
		if (bomb == null){
			bomb = new Bomb(alien.getX(), alien.getY());
			}
		moveAll();
		drawAll();
		checkHits();
	}
	
	public void mouseClicked(MouseEvent event){
		int initialX = defender.getX();
		int initialY = defender.getY();
		if (laser == null){
		laser = new Laser(initialX, initialY);
		}
	}
	
	public void mouseMoved(MouseEvent event){
		//defender.move(event.getX());
	}
	
	private void moveAll(){
		alien.move();
		if (bomb != null){
			bomb.move();
		}
		if (laser != null){
			laser.move();
		}
	}
	
	private void drawAll(){
		Graphics paper = panel.getGraphics();
		paper.setColor(Color.white);
		paper.fillRect(0, 0, panel.getWidth(), panel.getHeight());
		paper.setColor(Color.black);
		defender.draw(panel);
		alien.draw(panel);
		
		if (laser != null){
			laser.draw(panel);
		}
		
		if (bomb != null){
			bomb.draw(panel);
		}
	}
	
	private void checkHits(){
		if (collides(laser, alien)){
			endGame("user");
		}
		
		else{
			if (collides(bomb, defender)){
				endGame("alien");
			}
		}
		
		if (bomb != null){
			if (bomb.getY() > panel.getHeight()){
				bomb = null;
			}
		}
		
		if (laser != null){
			if (laser.getY() < 0){
				laser = null;
			}
		}
	}	
		
	private boolean collides(Sprite one, Sprite two){
		if (one == null || two == null){
			return false;
		}
	
		if ( one.getX() > two.getX() && one.getY() < (two.getY() + two.getHeight()) && (one.getX() + one.getWidth()) < (two.getX() + two.getWidth()) && (one.getY() + one.getWidth()) > (two.getY())){
			return true;
		}
		
		else{
			return false;
		}
	}

	private void endGame(String winner){
		laser = null;
		bomb = null;
		timer.stop();
		JOptionPane.showMessageDialog(null,"game over - " + winner + " wins");
	}
	
	public void windowClosing(WindowEvent Event){
    	System.exit(0);
    }
    
    public void windowIconified(WindowEvent Event){	
    }
    
    public void windowOpened(WindowEvent Event){
    }
    
    public void windowClosed(WindowEvent Event){
    }
    
    public void windowDeiconified(WindowEvent Event){
    }
    
    public void windowActivated(WindowEvent Event){
    }
    
    public void windowDeactivated(WindowEvent Event){
    }
}

Última edición por CMushroom; 15/10/2013 a las 05:03