15/10/2013, 04:51
|
| | | Fecha de Ingreso: diciembre-2011 Ubicación: Morelos
Mensajes: 99
Antigüedad: 13 años Puntos: 1 | |
Respuesta: Juego chico clases 8 errores Cita:
Iniciado por Malenko 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 |