0% encontró este documento útil (0 votos)
22 vistas9 páginas

Diccionario de Clases del Juego ASTEROIDS

Este documento describe las clases y métodos utilizados en el desarrollo de un juego de asteroides. Define clases como Game, WorldPanel, Asteroid, Bullet y Entity que controlan la lógica del juego, la interfaz, los asteroides y las balas. También describe métodos para manejar colisiones, actualizaciones, dibujo de elementos y lógica del juego.

Cargado por

Jair Villarreal
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
22 vistas9 páginas

Diccionario de Clases del Juego ASTEROIDS

Este documento describe las clases y métodos utilizados en el desarrollo de un juego de asteroides. Define clases como Game, WorldPanel, Asteroid, Bullet y Entity que controlan la lógica del juego, la interfaz, los asteroides y las balas. También describe métodos para manejar colisiones, actualizaciones, dibujo de elementos y lógica del juego.

Cargado por

Jair Villarreal
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD AUTÓNOMA DE

NUEVO LEÓN
Facultad de Ingeniería Mecánica y Eléctrica

Diccionario de programa ASTEROIDS


CLASE DEFINICIÓN
 public class Game extends JFrame Clase que contiene los parámetros que forman
el esqueleto principal del juego.
o public class WorldPanel extends Clase que se encarga del esqueleto del juego
JPanel en el ámbito de información mostrada en la
pantalla, las palabras, texto implementado,
puntuación, nivel, entre otros.
 public class Asteroid extends Entity Clase que se encarga de el spawneo de los
asteroides, los cuales tienen propiedades
como el tiempo de aparición, velocidad, su
rotación, sus propiedades de colisión, etc.
 public enum AsteroidSize Clase encargada del tamaño y desglosamiento
a la hora de que la bala del personaje a
controlar colisione con el asteroide.
 public class Bullet extends Entity Clase encargada de la creación/desaparición
del proyectil a la hora de dar la instrucción de
disparo, la creación gráfica, velocidad, colisión
y reaparición del mismo.
 public abstract class Entity Clase abstracta dada para la realización de las
entidades que se ocupan para el videojuego,
las propiedades dadas son de velocidad,
rotación, radio, remover, añadimiento de
puntos.
 public class Player extends Entity Clase la cual es la encargada de darle vida al
jugador por medio de una nave, la cual tiene
propiedades como la de perder vida, ganar
vida, obtener/restar munición, la rotación, el
accionamiento de disparo, las animaciones,
gráficos, etc.
 public class Clock Clase encargada del funcionamiento del
cronómetro que se lleva en el juego, tiene
propiedades de añadimiento de milisegundos,
agrupaciones de segundos, minutos y horas,
función para parar el tiempo.
public class Vector2 Clase encargada del cálculo de las funciones X
y Y de los vectores utilizados en el juego, con
funciones como sacar la distancia, altura,
ángulos, etc.

Marcas para cada Clase:


 Game
o WordPanel  Entity
 Asteroid  Clock
 AsteroidSize Vector2
 Bullet
MÉTODOS DEFINICIÓN
 private Game() Esta instancia es la que se encarga de la
ejecución del juego.
 private boolean checkForRestart() Este hace un chequeo de la entrada del
usuario para verificar si la tecla introducida es
la correcta para resetear, en caso contrario, no
hacer nada.
 private void startGame() Esta instancia es la encargada del inicio del
juego y la ejecución del mismo en loop.
 private void updateGame() Este método se encarga de la actualización
constante de entidades y estados.
 private void resetGame() Este método realiza el reseteo de las variables
del juego.
 private void resetEntityLists() Este remueve todas las entidades del mundo a
excepción del jugador.
 private boolean areEnemiesDead() Este método determina si ya no hay enemigos
(asteroides) restantes en el mundo.
 public void killPlayer() Este mismo actualiza el estado del juego en
caso de que el jugador haya muerto.
 public void addScore(int score) Este mismo método añade los puntos
correspondientes a la hora de la actualización
del juego.
 public void registerEntity(Entity Este método se encarga de añadir las
entity) entidades al juego.
 public boolean isGameOver() Este método realiza la operación de acabado
del juego cuando cumpla con las condiciones.
 public boolean isPlayerInvulnerable() Determina si el jugador es vulnerable o no.
 public boolean canDrawPlayer() Determina si el jugador puede ser empatado o
no.
 public int getScore() Este método obtiene el puntaje final.
 public int getLives() Este método obtiene el número de vidas
restantes.
 public int getLevel() Este método obtiene el nivel siguiente.
 public boolean isPaused() Este define si el juego es pausado o no.
 public boolean isShowingLevel() Este obtiene si el nivel se muestra o no.
 public Random getRandom() Se obtiene la instancia de manera aleatoria.
 public List<Entity> getEntities() Obtiene la lista de entidades del mundo.
 public Player getPlayer() Obtiene la instancia del jugador.
 public static void main(String[] args) Esta es la instancia “main” del programa.
o public void paintComponent(Graphics Este método es el encargado de la
g) demostración de los datos realizados en el
juego, ya sea el puntaje, vidas restantes,
tiempo, entre otros.
o private void drawTextCentered(String Método encargado de darle formato al tipo de
text, Font font, Graphics2D g, int y) letra, tamaño y posición del texto.
o private void drawEntity(Graphics2D Este dibuja las entidades de datos en la
g2d, Entity entity, double x, double y) pantalla del juego.
 public Asteroid(Random random) Método que se encarga de crear un asteroide
en el juego.
 public Asteroid(Asteroid parent, Crea un asteroide de un asteroide padre al
AsteroidSize, size, Random random) este mismo ser destruido.
 private static Vector2 Calcula un punto de spawneo en el mapa.
calculatePosition(Random random)
 private static Vector2 Calcula la velocidad la cual sale disparado el
calculateVelocity(Random random) asteroide.
 public void update(Game game) Rota la imagen del asteroide cada frame.
 public void draw(Graphics2D g, Game Dibuja el asteroide.
game)
 public void handleCollision(Game Previene las colisiones de los asteroides con
game, Entity other) ellos mismos.
 private AsteroidSize(double radius, Método encargado de crear un nuevo tamaño
int value) de asteroide.
 private static Polygon Método encargado de generar un polígono del
generatePolygon(double radius) tamaño de radio generado.
 public Bullet(Entity owner, double Este método crea una bala.
angle)
 public void handleCollision(Game Este método le otorga un valor de colisión a la
game, Entity other) bala.
 public void draw(Graphics2D g, Game Este mismo dibuja la bala en el juego.
game)
 public void update(Game game) Este método se utiliza para estar actualizando
el juego constantemente.
 public Entity(Vector2 position, Crea una nueva identidad.
Vector2 velocity, double radius, int
killScore)
 public void rotate(double amount) Rota la entidad por ciertos grados.
 public int getKillScore() Obtiene el numero de puntos ganados por la
eliminación de la entidad.
 public void flagForRemoval() Marca la entidad eliminada en el juego.
 public Vector2 getPosition() Obtiene la posición de la entidad.
 public Vector2 getVelocity() Obtiene la velocidad de la entidad.
 public double getRotation() Obtiene la rotación de la entidad.
 public double getCollisionRadius() Obtiene el radio de colisión de la entidad.
 public boolean needsRemoval() Se decide si se necesita ser removida esa
entidad o no.
 public void update(Game game) Método el cual hace que se actualice el juego
constantemente.
 public boolean checkCollision(Entity Se determina cuando dos entidades
entity) colisionan.
 public abstract void Recrea la identidad al chocar con otra.
handleCollision(Game game, Entity
other);
 public abstract void draw(Graphics2D Dibuja la identidad en la pantalla.
g, Game game);
 public Player() Inicializa la instancia del jugador.
 public void setThrusting(boolean Marca cuando el jugador puede realizar un
state) empuje.
 public void setRotateLeft(boolean Marca cuando el jugador debería rotar a la
state) izquierda cuando se actualiza.
 public void setRotateRight(boolean Marca cuando el jugador debería rotar a la
state) derecha cuando se actualiza.
 public void setFiring(boolean state) Marca cuando el jugador debe de disparar al
actualizarse.
 public void setFiringEnabled(boolean Marca cuando el jugador puede disparar al
state) actualizarse.
 public void reset() Resetea la posición, velocidad y rotación, y
borra toda la lista de balas disparadas.
 public void update(Game game) Actualiza el juego constantemente.
 public void handleCollision(Game Es el método encargado de darle colisión a los
game, Entity other) asteroides y de los asteroides al jugador.
 public void draw(Graphics2D g, Game Encargado de dibjar al jugador dentro de la
game) pantalla de juego.
 public Clock(float cyclesPerSecond) Crea un nuevo reloj y lo inicializa en ciclos por
segundo.
 public void setCyclesPerSecond(float Inicializa los ciclos por segundo dados.
cyclesPerSecond)
 public void reset() Resetea el reloj.
 public void update() Actualiza el reloj constantemente.
 public void setPaused(boolean Dicta si se pausa el reloj o no.
paused)
 public boolean isPaused() Dicta si el reloj ha sido pausado o no.
 public boolean hasElapsedCycle() Dicta si el ciclo ha transcurrido o no.
 public boolean peekElapsedCycle() Chequea si se un ciclo ha sido realizado para
ese reloj hasta ahora.
 private static final long Calcula el tiempo actual en milisegundos.
getCurrentTime()
public Vector2(double angle) Crea un nuevo vector desde un ángulo.
public Vector2(double x, double y) Crea un vector con los valores deseados.
public Vector2(Vector2 vec) Crea un nuevo vector y copia los componentes
del viejo.
public Vector2 set(double x, double y) Establece los componentes de este vector.
public Vector2 add(Vector2 vec) Añade los componentes del vector a este.
public Vector2 scale(double scalar) Escala los componentes de este vector.
public Vector2 normalize() Normaliza el vector dándole una distancia de
1.
public double getLengthSquared() Obtiene el cuadrado de la distancia del vector.
public double Obtiene la distancia cuadrada del otro vector.
getDistanceToSquared(Vector2 vec)
VARIABLES DE INSTANCIA DEFINICIÓN
 private static final long Variable encargada de crear un Identificador
serialVersionUID; único de serie.
 private static final int Encargado de los frames por segundo
FRAMES_PER_SECOND; mostrados en la pantalla.
 private static final long FRAME_TIM; Este es el tiempo que se tarda de
transaccionar de un frame a otro en
milisegundos.
 private static final int Este es el muestreo de los frames por segundo
DISPLAY_LEVEL_LIMIT; del nivel actual.
 private static final int Este es el tiempo de enfriamiento que hay a la
DEATH_COOLDOWN_LIMIT; hora de morir en el juego.
 private static final int Este es el tiempo de enfriamiento que hay a la
RESPAWN_COOLDOWN_LIMIT; hora de reaparecer en el juego.
 private static final int Este es el tiempo el cual te da invencibilidad a
INVULN_COOLDOWN_LIMIT; la hora de perder una vida.
 private static final int Este es el tiempo que se te otorga cuando el
RESET_COOLDOWN_LIMIT; jugador pierde.
 private WorldPanel world; Esta es la instancia del WorldPanel.
 private Clock logicTimer; Esta es la instancia encargada de que el reloj
esté en constante actualización.
 private Random random; Esta es la instancia la cual hace que los
enemigos spawneen de manera aleatoria.
 private List<Entity> entities; Esta es la lista de entidades que existen en el
mundo el juego.
 private List<Entity> pendingEntities; Esta es la lista de entidades que se necesitan
añadir en el mundo del juego.
 private Player player; Esta es la instancia del jugador, el cual hace
que esté presente por la clase Player.
 private int deathCooldown; Esta instancia es la encargada de realizar los
respectivos “cooldown” a la hora de
reaparecer el jugador después de haber
muerto.
 private int showLevelCooldown; Esta es la instancia encargada de enseñar el
tiempo de cooldown que hay entre los niveles
para no poder disparar ni recibir daño.
 private int restartCooldown; Esta es la instancia encargada de otorgar el
“cooldown” al jugador entre la carga de
niveles.
 private int score; Esta es la instancia del puntaje obtenido.
 private int lives; Esta es la instancia de las vidas restantes.
 private int level; Esto muestra el nivel actual.
 private boolean isGameOver; Esto analiza si el juego ha acabado o no.
 private boolean restartGame; Esto analiza el reseteo del juego por medio del
jugador.
o private static final long Identificador Único De Versión Serial.
serialVersionUID;
o public static final int WORLD_SIZE; El tamaño del mundo en píxeles
o private static final Font TITLE_FONT; El tipo de letra usado para textos grandes.
o private static final Font El tipo de letra que es usado para textos
SUBTITLE_FONT; medios.
o private Game game; La instancia del juego.
 private static final double La velocidad mínima la cual puede girar el
MIN_ROTATION; asteroide.
 private static final double La velocidad máxima la cual puede girar el
MAX_ROTATION; asteroide.
 private static final double Variación entre las velocidades de rotación del
ROTATION_VARIANCE; asteroide.
 private static final double La velocidad mínima la cual puede moverse el
MIN_VELOCITY; asteroide.
 private static final double La velocidad máxima la cual puede moverse el
MAX_VELOCITY; asteroide.
 private static final double Variación que hay entre las velocidades de
VELOCITY_VARIANCE; movimiento de los asteroides.
 private static final double La velocidad mínima la cual puede recorrer el
MIN_DISTANCE; asteroide.
 private static final double La velocidad máxima la cual puede recorrer el
MAX_DISTANCE; asteroide.
 private static final double Variación que hay entre las distancias
DISTANCE_VARIANCE; recorridas de los asteroides.
 private static final float El número de actualizaciones a ejecutar al
SPAWN_UPDATES; spawnear los asteroides.
 private AsteroidSize size; El tamaño de los asteroides.
 private double rotationSpeed; Velocidad de rotación de los asteroides.
 Small(x,y); Asteroides pequeños son los que tienen un
radio de 15, los cuales valen 100 puntos.
 Medium(x,y); Asteroides medianos son los que tienen un
radio de 25, los cuales valen 50 puntos.
 Large(x,y); Asteroides grandes son los que tienen un radio
de 40, los cuales valen 20 puntos.
 private static final int Este son los puntos en el asteroide.
NUMBER_OF_POINTS;
 public final Polygon polygon; Los polígonos para el tamaño de asteroide
correspondiente.
 public final double radius; El radio de los tipos de asteroides.
 public final int killValue; El número de puntos ganados por matar el
tipo de asteroide en cuestión.
 private static final double Este determina la magnitud de velocidad de la
VELOCITY_MAGNITUDE bala.
 private static final int MAX_LIFESPAN Determina el número de ciclos que una bala
puede existir.
 private int lifespan; Determina el número de ciclos que la bala ha
existido.
 protected Vector2 position; Posición de la entidad.
 protected Vector2 velocity; Velocidad de la entidad.
 protected double rotation; Rotación de la entidad.
 protected double radius; Radio de la entidad.
 private boolean needsRemoval; Marca cuando una entidad debe de ser
removida del juego.
 private int killScore; Numero de puntos ganados por la eliminación
de la entidad.
 private static final double Da la rotación del jugador.
DEFAULT_ROTATION
 private static final double Da el empuje del jugador.
THRUST_MAGNITUDE
 private static final double Da la velocidad máxima.
MAX_VELOCITY_MAGNITUDE
 private static final double Determina la aceleración de rotación.
ROTATION_SPEED
 private static final double Es el factor que determina el alentamiento del
SLOW_RATE jugador.
 private static final int MAX_BULLETS Es la cantidad máxima de balas que puede
cargar el jugador.
 private static final int FIRE_RATE Cuenta el número de ciclos que hay entre cada
disparo.
 private static final int Este es el número máximo de disparos
MAX_CONSECUTIVE_SHOTS consecutivos.
 private static final int Este es el sobrecalentamiento máximo al
MAX_OVERHEAT jugador estar disparando.
 private boolean thrustPressed; Dicta si el botón de empuje es presionado.
 private boolean rotateLeftPressed; Dicta si el botón de rotación izquierda es
presionado.
 private boolean rotateRightPressed; Dicta si el botón de rotación derecha es
presionado.
 private boolean firePressed; Dicta si el botón de disparo es presionado.
 private boolean firingEnabled; Dicta si el botón de activado de disparo es
presionado.
 private int consecutiveShots; Marca los disparos consecutives dados.
 private int fireCooldown; Este es el cooldown que tiene el arma para
volver a disparar.
 private int overheatCooldown; Este marca el sobrecalentamiento que hay en
el arma por dispararse.
 private int animationFrame; Esta es la animación actual que hay en el
frame.
 private List<Bullet> bullets; Estas son las balas disparadas.
 private float millisPerCycle; Milisegundos para crear un ciclo.
 private long lastUpdate; Esta es la ultima actualización que se le dio al
reloj.
 private int elapsedCycles; Este es el numero de ciclos transcurridos de
milisegundos.
 private float excessCycles; Es la cantidad excedida de ciclos dados.
 private boolean isPaused; Dicta cuando el reloj está pausado.
public double x; Representa el valor X del vector.
public double y; Representa el valor Y del vector.

También podría gustarte