Repository navigation
v3.0 - Creazione della prima mappa di gioco da un’immagine
📌 Descrizione
In questo aggiornamento di NeoSnake sono state introdotte importanti modifiche strutturali e funzionali al progetto, finalizzate a rendere l’esperienza di gioco più completa e coerente con un ambiente di gioco reale.
- Implementazione della mappa di gioco (
map.hpp,map.cpp): è stata aggiunta una nuova classeMapin grado di caricare una mappa da immagine e disegnarla utilizzando la texturewall.png. - Gestione dinamica della view: La view ora segue il serpente in modo fluido e viene limitata ai margini della mappa, impedendo che il giocatore possa vedere aree al di fuori del campo di gioco.
- Gestione collisione tra serpente e muri: Durante l'update, il gioco verifica se la testa del serpente si sta spostando verso una cella muro o al di fuori della mappa. In caso positivo viene impostato lo stato di Game Over (
GAMEOVER), impedendo ulteriori movimenti. - Correzione del metodo
moveFruit(): Il posizionamento del frutto è stato migliorato: ora viene generato esclusivamente su celle libere, evitando sia le sezioni del serpente sia i muri della mappa. - Generato il file
resource_path.h.ine inclusa la directory generata in CMake: Aggiunto il templateresource_path.h.ine generatoresource_path.hviaconfigure_fileper definire la macroRESOURCE_DIR(path assoluto della cartellaresources). Introdotta la variabile${GENERATED_DIR}(${CMAKE_BINARY_DIR}/generated) e aggiunta atarget_include_directories(NeoSnake)per rendere visibile l'header generato al compilatore. A questo punto i percorsi delle risorse sono corretti in fase di sviluppo/debug indipendentemente dalla working directory dell'eseguibile.
NeoSnake
│
├── 📂handlers/
│ ├── draw.cpp
│ ├── fruitFunction.cpp
│ ├── input.cpp
│ ├── snakeFunction.cpp
│ └── update.cpp
│
├── 📂header/
│ ├── engine.hpp
│ ├── fruit.hpp
│ ├── snake.hpp
+│ ├── resource_path.h.in
+│ └── map.hpp
│
├── 📂src/
│ ├── engine.cpp
│ ├── fruit.cpp
│ ├── main.cpp
│ ├── snake.cpp
+│ └── map.cpp
│
└── 📂resources/
+ ├── 📂levels/
+ │ └── Level01.png
│
+ └── 📂texture/
+ └── wall.png