Files
orni_attack/source/main.cpp
2025-11-27 12:25:39 +01:00

61 lines
1.6 KiB
C++

// main.cpp - Punt d'entrada del joc Asteroides
// © 1999 Visente i Sergi (versió Pascal)
// © 2025 Port a C++20 amb SDL3
#include "sdl_manager.hpp"
#include "joc_asteroides.hpp"
int main(int argc, char* argv[]) {
// Crear gestor SDL amb finestra de 640x480
SDLManager sdl(640, 480, "Asteroides - BETA 2.2");
// Crear instància del joc
JocAsteroides joc(sdl.obte_renderer());
joc.inicialitzar();
// Loop principal del joc
SDL_Event event;
bool running = true;
// Control de temps per delta_time
Uint64 last_time = SDL_GetTicks();
while (running) {
// Calcular delta_time real
Uint64 current_time = SDL_GetTicks();
float delta_time = (current_time - last_time) / 1000.0f; // Convertir ms a segons
last_time = current_time;
// Limitar delta_time per evitar grans salts
if (delta_time > 0.05f) { // Màxim 50ms (20 FPS mínim)
delta_time = 0.05f;
}
// Processar events SDL
while (SDL_PollEvent(&event)) {
// Processar input del joc
joc.processar_input(event);
// Detectar tancament de finestra o ESC
if (event.type == SDL_EVENT_QUIT ||
(event.type == SDL_EVENT_KEY_DOWN && event.key.key == SDLK_ESCAPE)) {
running = false;
}
}
// Actualitzar física del joc amb delta_time real
joc.actualitzar(delta_time);
// Netejar pantalla (negre)
sdl.neteja(0, 0, 0);
// Dibuixar joc
joc.dibuixar();
// Presentar renderer (swap buffers)
sdl.presenta();
}
return 0;
}