Skip to content

Latest commit

 

History

History
83 lines (58 loc) · 2.49 KB

File metadata and controls

83 lines (58 loc) · 2.49 KB

Space Invaders 3D

Clon de Space Invaders en primera persona desarrollado con JavaFX 3D. Los invasores forman una cuadrícula en el espacio y avanzan hacia ti mientras los eliminas desde una perspectiva FPS.

Requisitos

  • Java 21+ (probado con OpenJDK 24)
  • Maven 3.8+

Compilar y ejecutar

mvn javafx:run

Esto descarga las dependencias de JavaFX automáticamente, compila el proyecto y lanza el juego.

Si solo quieres compilar sin ejecutar:

mvn compile

Controles

Tecla Acción
A / D Desplazarse izquierda / derecha
W / S Desplazarse arriba / abajo
Mover la mira
SPACE / Click Disparar
Ratón Apuntar (alternativo a las flechas)
P Pausar / reanudar
ENTER Iniciar partida (pantalla de título)
H Ver Hall of Fame (pantalla de título)
ESC Volver (Hall of Fame)

Características

Vista en primera persona

La cámara se sitúa en la posición del jugador mirando hacia los invasores. La cuadrícula de fondo y el campo de estrellas dan sensación de profundidad. Cuando los invasores se acercan demasiado, la pantalla se tiñe de rojo como aviso de peligro.

Niveles

La dificultad aumenta progresivamente en cada nivel:

  • Más filas y columnas de invasores
  • Mayor velocidad de movimiento y cadencia de disparo
  • Aparecen tipos de enemigos más resistentes:
Tipo Color Vidas Puntos
Básico Verde 1 10
Rápido Cyan 1 20
Resistente Naranja 2 30
Élite Rojo 2 50

Power-Ups

Al destruir un invasor hay una probabilidad de que suelte un power-up que viaja hacia tu posición:

Símbolo Nombre Efecto Duración
R Rapid Fire Duplica la cadencia de disparo 8 s
S Shield Absorbe un impacto Hasta recibir daño
M Multi Shot Dispara 3 balas a la vez 10 s
V Speed Boost Aumenta la velocidad de movimiento 8 s
+ Extra Life Otorga una vida extra Permanente
x2 Score x2 Duplica los puntos obtenidos 12 s

Añadir un power-up nuevo

  1. Crea una clase que implemente com.spaceinvaders.powerup.PowerUp
  2. Regístrala en PowerUpRegistry:
PowerUpRegistry.register(MiNuevoPowerUp::new);

Hall of Fame

Los 10 mejores puntajes se guardan en ~/.space-invaders-scores.txt. Al terminar una partida con puntaje suficiente, se pide el nombre del jugador.