Una simulación de Mario Bros para NES desarrollada en Java con JavaFX para la reproducción de audio.
- Juego de plataformas estilo Mario Bros clásico
- Controles con WASD (movimiento clásico)
- Sistema de audio implementado con JavaFX
- Interfaz gráfica desarrollada con Swing
- Proyecto universitario completo
- Java 20 o superior
- JavaFX SDK 21.0.8 o compatible
- Sistema operativo compatible con JavaFX (Windows, macOS, Linux)
JavaFX no está incluido por defecto en las versiones modernas de Java. Necesitas descargarlo e instalarlo:
- Descarga JavaFX SDK desde https://openjfx.io/
- Extrae el SDK en una carpeta (ej:
/home/usuario/opt/javafx-sdk-21.0.8/)
### 2. Configurar Variables de Entorno
Asegúrate de que JavaFX esté en tu `PATH` o configura las variables de entorno:
```bash
# Linux/macOS
export PATH_TO_FX="/ruta/a/javafx-sdk-21.0.8/lib"
export JAVA_OPTS="--module-path $PATH_TO_FX --add-modules javafx.controls,javafx.fxml,javafx.media"
# Compilar (compila todo el proyecto incluyendo subdirectorios)
mkdir -p build/classes
find src -name "*.java" > sources.txt
javac --module-path "$PATH_TO_FX" \
--add-modules javafx.controls,javafx.media \
-cp ".:$PATH_TO_FX/*" \
-d build/classes @sources.txt
# Crear JAR
jar cfm dist/superMario.jar manifest.mf -C build/classes .# Ejecutar (clases compiladas)
# Asegúrate de exportar PATH_TO_FX a la ruta correcta al SDK (ej: /home/jenorg/opt/javafx-sdk-21.0.8/lib)
java --module-path "$PATH_TO_FX" \
--add-modules javafx.controls,javafx.fxml,javafx.media \
-cp "build/classes" game.SuperMariojava --module-path "$PATH_TO_FX" \
--add-modules javafx.controls,javafx.fxml,javafx.media \
-jar dist/superMario.jar- Abre el proyecto en NetBeans
- Asegúrate de que JavaFX esté configurado en las propiedades del proyecto
- Ejecuta el proyecto normalmente
El proyecto incluye configuración para VS Code en .vscode/launch.json:
{
"vmArgs": "--module-path /home/jenorg/opt/javafx-sdk-21.0.8/lib --add-modules javafx.controls,javafx.fxml,javafx.media"
}He añadido dos scripts en la raíz del proyecto que reproducen exactamente los comandos que te funcionaron:
build.sh: compila todo el proyecto y generadist/superMario.jar.run.sh: ejecuta la clase principal con clases compiladas o el JAR (./run.sho./run.sh jar).
Úsalos así:
# Exporta la ruta al SDK de JavaFX (ajusta si es necesario)
export PATH_TO_FX="/home/jenorg/opt/javafx-sdk-21.0.8/lib"
# Compilar
./build.sh
# Ejecutar usando clases compiladas
./run.sh
# Ejecutar usando JAR
./run.sh jarConsejo: si ves "Module javafx.controls not found" verifica que
PATH_TO_FXapunte a la carpetalibdel JavaFX SDK y que contenga los JARs de JavaFX.
El proyecto utiliza JavaFX específicamente para la reproducción de audio:
- Clase
Reproductor: Maneja la reproducción de archivos de audio usandojavafx.scene.media.AudioClip - Módulos requeridos:
javafx.mediapara funcionalidad de audio - Formatos soportados: MP3, WAV, y otros formatos compatibles con JavaFX
Reproductor reproductor = new Reproductor();
reproductor.openFile("mario_theme", "src/res/audios/Mario Bros - Log in Menu.mp3");
reproductor.play("mario_theme");- W: Saltar
- A: Mover izquierda
- S: Agacharse
- D: Mover derecha
src/
├── game/
│ ├── SuperMario.java # Clase principal
│ ├── MarioLogin.java # Interfaz de login
│ ├── Entidades/ # Entidades del juego
│ ├── Graficos/ # Componentes gráficos
│ ├── Objeto/ # Objetos del juego
│ └── manager/
│ ├── GamePanel.java # Panel principal del juego
│ └── Reproductor.java # Reproductor de audio (JavaFX)
└── res/
├── images/ # Recursos gráficos
└── audios/ # Archivos de audio
# Asegúrate de incluir los módulos de JavaFX
--add-modules javafx.controls,javafx.fxml,javafx.media# Verifica que la ruta a JavaFX sea correcta
--module-path /ruta/correcta/a/javafx-sdk/lib- Verifica que los archivos de audio estén en
src/res/audios/ - Asegúrate de que el módulo
javafx.mediaesté incluido - Comprueba que los formatos de audio sean compatibles
Este proyecto fue desarrollado como proyecto universitario y utiliza:
- Java Swing para la interfaz gráfica
- JavaFX para la reproducción de audio
- Java 20 como versión base
- NetBeans como IDE principal
- El sistema de login está comentado en el código principal
- Para habilitar el login, descomenta las líneas correspondientes en
SuperMario.java - Los recursos (imágenes y audio) deben estar en las rutas especificadas