Motor de sprites/animacions/surfaces i jugador centrat (v0.2.0)

This commit is contained in:
JailDesigner committed 2026-04-18 21:02:55 +02:00
1 parent 7bb1edd08a
commit de5a670fdb
34 files changed
+16137 -81

No files matched your search

+18 -4
View File
@@ -3,6 +3,9 @@
#include <SDL3/SDL.h>
#include <SDL3/SDL_main.h>
#include <iostream>
#include <memory>
#include "core/system/director.hpp"
#include "core/system/event_buffer.hpp"
@@ -10,8 +13,13 @@ auto SDL_AppInit(void** appstate, int argc, char* argv[]) -> SDL_AppResult {
(void)argc;
(void)argv;
auto* director = new Director();
*appstate = director;
// Marcador d'inici: ha de ser la PRIMERA línia de log del programa.
std::cout << "Game start\n";
// Construïm el Director amb make_unique i l'entreguem en cru a SDL.
// El SDL_AppQuit reclamarà la propietat amb un altre unique_ptr (RAII).
auto director = std::make_unique<Director>();
*appstate = director.release();
return SDL_APP_CONTINUE;
}
@@ -28,6 +36,12 @@ auto SDL_AppIterate(void* appstate) -> SDL_AppResult {
void SDL_AppQuit(void* appstate, SDL_AppResult result) {
(void)result;
auto* director = static_cast<Director*>(appstate);
delete director;
// Reabsorbim la propietat: el destructor neteja l'escena; els singletons
// (Screen, Cache) viuen fins a la destrucció estàtica i SDL_Quit dispara
// via atexit després d'ells.
{
std::unique_ptr<Director> director(static_cast<Director*>(appstate));
}
// Marcador de fi: ha de ser l'ÚLTIMA línia de log del programa.
std::cout << "Bye!\n";
}