Código para canceler key events.
Publicado por ivan (1 intervención) el 11/04/2012 11:30:58
Estoy desarrollando el space invaders y tengo un problemita. Yo creo un arrayList que cada vez que presiona la tecla espacio me genera un disparo y lo hace todo perfectamente. El problema viene, cuando quiero modificarlo y que solo dispare una vez y hasta que no termine ese disparo aparezca otro. Me da siempre error. A ver si podéis echarme una mano.
if(key == KeyEvent.VK_SPACE){
shot = true;
}
Esta es mi clase láser
public class Laser {
protected Image image;
protected int x,y;
private final int SPEED = 5; //Velocidad del disparo
private boolean visible;
public Laser(int x, int y){
ImageIcon ii = new ImageIcon(this.getClass().getResource("images/laser.png"));
image = ii.getImage();
visible = true;
this.x = x; //Coordenadas X láser que son iguales a las coordenadas de la nave.
this.y = y; //Coordenadas Y láser que son iguales a las coordenadas de la nave.
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public Image getImage(){
return image;
}
public Rectangle getBounds(){
return new Rectangle(x, y, image.getWidth(null), image.getHeight(null));
}
public boolean isVisible(){
return visible;
}
public void setVisible(boolean visible){
this.visible = visible;
}
public void update(){
y -= SPEED;
if(y<0)
visible = false;
}
}
if(key == KeyEvent.VK_SPACE){
shot = true;
}
Esta es mi clase láser
public class Laser {
protected Image image;
protected int x,y;
private final int SPEED = 5; //Velocidad del disparo
private boolean visible;
public Laser(int x, int y){
ImageIcon ii = new ImageIcon(this.getClass().getResource("images/laser.png"));
image = ii.getImage();
visible = true;
this.x = x; //Coordenadas X láser que son iguales a las coordenadas de la nave.
this.y = y; //Coordenadas Y láser que son iguales a las coordenadas de la nave.
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public Image getImage(){
return image;
}
public Rectangle getBounds(){
return new Rectangle(x, y, image.getWidth(null), image.getHeight(null));
}
public boolean isVisible(){
return visible;
}
public void setVisible(boolean visible){
this.visible = visible;
}
public void update(){
y -= SPEED;
if(y<0)
visible = false;
}
}
Valora esta pregunta
0