Estoy empezando con la programación en JAVA y estoy haciendo un jueguecillo en el cual me ha aparecido un problema y agradecería que alguien me asesorara en el asunto.
El juego es el típico de una nave espacial que tiene que matar a los enemigos que se encuentra.
Tengo varias clases como
Escenario: me pinta el fondo
Nave: me controla la nave
Disparo: controla el disparo.
Enemigos: controla a los enemigos
El caso es que en Nave declaro y actualizo las variables x e y de la nave.
Tengo estas líneas para que me las devuelva actualizadas al mover la nave.
Código:
public int getX()
{
return x;
}
public int getY()
{
return y;
}
La nave se pinta desde Escenario y pongo lo siguiente para ello:
Código:
g2d.drawImage(nave.getImage(), nave.getX(), nave.getY(), this);
Esto me funciona perfectamente.
Cuando pulso la tecla "B" hago que me aparezca el disparo y suba hasta arriba.
Para ello tomo las coordenadas de la nave y así el disparo sale de ella de esta manera:
Código:
dispy=nave.getY();
dispx=nave.getX();
Pues resulta que esto sólo me funciona la primera vez que disparo.
El resto de las veces, aunque mueva la nave el disparo sigue saliendo de las coordenadas donde estaba la nave al principio. Osea, que cuando pido las coordenadas de la nave en disparo siempre me devuelve las mismas (las primeras). No me las actualiza.
Por qué puede ser?
Agradecería que alguien me pudiera dar un poco de luz en el asunto.
Un saludo y gracias