Descripció general #
Spooky Skeleton és un joc de plataformes 2D desenvolupat amb C++ i SDL. El joc presenta un esquelet protagonista que ha de travessar dos nivells de temàtica terrorífica: una cova subterrània i el bosc exterior.
Repositori de GitHubLes meves contribucions individuals #
- Sistema de moviment del jugador (incloent-hi lògica de salt i acceleració personalitzada de “lliscament sobre gel”).
- Comportament d’enemics terrestres.
- Implementació de l’algorisme A* de pathfinding per a enemics.
- Càrrega de mapa i animacions utilitzant el format Tiled (.tmx).
- Implementació del sistema d’UI, totalment data-driven i carregat des d’XML.
Sobre el joc #
Objectiu Arribar al final de cada nivell evitant o derrotant els enemics i recollint totes les monedes.
Controls
- ESPAI – Saltar
- FLETXES ESQUERRA / DRETA – Moure’s
- Q – Atacar
- ESC – Obrir menú
Característiques destacades #
❄️ Mecànica de plataforma de gel #
Les rajoles de gel redueixen la fricció, fent que el jugador llisqui. Això va requerir ajustos en la lògica d’acceleració i desacceleració.
🧟♂️ Enemics i combat #
El jugador pot atacar i derrotar els zombis.
🧩 UI basada en dades #
Tots els elements de la UI es carreguen des d’arxius XML, permetent canvis de disseny flexibles sense modificar el codi font.
Subsistemes principals #
El joc està estructurat al voltant d’una arquitectura modular.
El mòdul principal de l’aplicació (j1App.cpp) gestiona el cicle de vida de tots els altres mòduls cridant mètodes de classe base compartits:
AwakePreUpdateUpdatePostUpdateCleanUp
Fàbrica d’entitats #
S’utilitza un patró factoria per crear i gestionar totes les entitats del joc, millorant tant l’organització com el rendiment.
Mòdul d’UI #
El sistema d’UI està completament desacoblat de la lògica de gameplay. Gestiona esdeveniments de manera independent, permetent una separació neta entre la interfície i els sistemes principals.
Dades basades en XML #
Els mapes, animacions, textures, rutes d’arxiu i dades de la UI es carreguen des d’XML. Això millora la llegibilitat, facilita la iteració i evita els “números màgics” codificats.