gpl.gasteroids
Class SpaceShip

java.lang.Object
  extended by gpl.gasteroids.SpaceShip

public class SpaceShip
extends java.lang.Object

Modela una nave y todos sus proyectiles.

Las propiedades publicas de una nave son:

Una nave es responsable de los proyectiles que lanza. Estos proyectiles se guardan en una instancia de Vector. Cuando la nave dispara, el proyectil sale con una velocidad inicial resultante de la velocidad instantánea de la nave más la proporcionada por el cañón.

Author:
Victor Carceler

Field Summary
 double arg
           
 double engine_time
           
 double force_x
           
 double force_y
           
 int L
           
 double m
           
 double speed_x
           
 double speed_y
           
 double thrust
           
 double x
           
 int x_max
           
 int x_min
           
 double y
           
 int y_max
           
 int y_min
           
 
Constructor Summary
SpaceShip()
          Constructor, inicializa la nave
 
Method Summary
 void fire()
          Pide a la nave que abra fuego.
 java.util.Vector getBullets()
          Retorna un Vector con los proyectiles controlados por la nave
 void paint(javax.microedition.lcdui.Graphics g)
          Dibuja la nave y cada uno de los proyectiles.
 java.lang.String toString()
           
 void updatePosition(double t)
          Actualiza la posición de la nave suponiendo que han transcurrido t segundos.
 void updateSpeed(double t)
          Actualiza la velocidad de la nave.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

x

public double x

y

public double y

x_min

public int x_min

x_max

public int x_max

y_min

public int y_min

y_max

public int y_max

arg

public double arg

speed_x

public double speed_x

speed_y

public double speed_y

force_x

public double force_x

force_y

public double force_y

m

public double m

thrust

public double thrust

engine_time

public double engine_time

L

public final int L
See Also:
Constant Field Values
Constructor Detail

SpaceShip

public SpaceShip()
Constructor, inicializa la nave

Method Detail

updateSpeed

public void updateSpeed(double t)
Actualiza la velocidad de la nave.

Para ello tiene en cuenta:

Cuando se actualiza la velocidad de la nave, se supone que la maniobra concluye. Por lo tanto el contador parcial de tiempo con los motores encendidos se pone a 0.

Parameters:
t - tiempo transcurrido en segundos

updatePosition

public void updatePosition(double t)
Actualiza la posición de la nave suponiendo que han transcurrido t segundos.

Para ello:

Si se pretende que la nave rebote, o bien salga por un borde para entrar por otro (espacio continuo como el Asteroids original) este es el método en el que picar código.

Parameters:
t - tiempo transcurrido en segundos

paint

public void paint(javax.microedition.lcdui.Graphics g)
Dibuja la nave y cada uno de los proyectiles.

Parameters:
g - Objeto Graphics en el que dibujar

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

fire

public void fire()
Pide a la nave que abra fuego.

Cada vez que se invoca a este método, la nave lanza un nuevo proyectil.

El proyectil tiene una posición determinada por la posición en la que la nave disparó.

La velocidad del proyectil está determinada por la velocidad instantánea de la nave en el momento del disparo más la velocidad proporcionada por su cañon. Se tiene en cuenta la orientación de la nave en el momento del disparo.


getBullets

public java.util.Vector getBullets()
Retorna un Vector con los proyectiles controlados por la nave

Returns:
Vector con los proyectiles controlados por la nave