Ir al contenido
Spooky Skeleton

Spooky Skeleton

·340 palabras·2 mins

Descripción general
#

Spooky Skeleton es un juego de plataformas 2D desarrollado con C++ y SDL. El juego presenta a un esqueleto protagonista que debe atravesar dos niveles de temática terrorífica: una cueva subterránea y el bosque exterior.

Repositorio de GitHub


Mis contribuciones individuales
#

  • Sistema de movimiento del jugador (incluyendo lógica de salto y aceleración personalizada de “deslizamiento sobre hielo”).
  • Comportamiento de enemigos terrestres.
  • Implementación del algoritmo A* de pathfinding para enemigos.
  • Carga de mapa y animaciones usando el formato Tiled (.tmx).
  • Implementación del sistema de UI, totalmente data-driven y cargado desde XML.

Sobre el juego
#

Objetivo Llegar al final de cada nivel evitando o derrotando a los enemigos y recogiendo todas las monedas.

Controles

  • ESPACIO – Saltar
  • FLECHAS IZQUIERDA / DERECHA – Moverse
  • Q – Atacar
  • ESC – Abrir menú

Características destacadas
#

❄️ Mecánica de plataforma de hielo
#

Las baldosas de hielo reducen la fricción, haciendo que el jugador se deslice. Esto requirió ajustes en la lógica de aceleración y desaceleración.

🧟‍♂️ Enemigos y combate
#

El jugador puede atacar y derrotar a los zombis.

🧩 UI basada en datos
#

Todos los elementos de la UI se cargan desde archivos XML, permitiendo cambios de diseño flexibles sin modificar el código fuente.


Subsistemas principales
#

El juego está estructurado en torno a una arquitectura modular. El módulo principal de la aplicación (j1App.cpp) gestiona el ciclo de vida de todos los demás módulos llamando a métodos de clase base compartidos:

  • Awake
  • PreUpdate
  • Update
  • PostUpdate
  • CleanUp

Fábrica de entidades
#

Se utiliza un patrón factoría para crear y gestionar todas las entidades del juego, mejorando tanto la organización como el rendimiento.

Módulo de UI
#

El sistema de UI está completamente desacoplado de la lógica de gameplay. Gestiona eventos de forma independiente, permitiendo una separación clara entre la interfaz y los sistemas principales.

Datos basados en XML
#

Los mapas, animaciones, texturas, rutas de archivo y datos de la UI se cargan desde XML. Esto mejora la legibilidad, facilita la iteración y evita los “números mágicos” hardcodeados.