afegit un mini-notificador

This commit is contained in:
2026-04-13 16:27:57 +02:00
parent 58cacf7bda
commit 86323a0e56
2 changed files with 59 additions and 8 deletions

View File

@@ -2,10 +2,12 @@
#include <SDL3/SDL.h>
#include <string> // for string
#include <vector> // for vector
#include "utils.h" // for color_t
class Asset;
class Text;
// Tipos de filtro
constexpr int FILTER_NEAREST = 0;
@@ -29,9 +31,17 @@ class Screen {
int borderHeight; // Anltura del borde
SDL_Rect dest; // Coordenadas donde se va a dibujar la textura del juego sobre la pantalla o ventana
color_t borderColor; // Color del borde añadido a la textura de juego para rellenar la pantalla
bool notifyActive; // Indica si hay notificaciones activas
int notificationLogicalWidth; // Ancho lógico de las notificaciones en relación al tamaño de pantalla
int notificationLogicalHeight; // Alto lógico de las notificaciones en relación al tamaño de pantalla
// Notificaciones - una sola activa, sin apilación ni animaciones
Text *notificationText; // Fuente 8bithud dedicada a las notificaciones
std::string notificationMessage; // Texto a mostrar
color_t notificationTextColor; // Color del texto
color_t notificationOutlineColor; // Color del outline
Uint32 notificationEndTime; // SDL_GetTicks() hasta el cual se muestra
int notificationY; // Fila vertical en el canvas virtual
// Dibuja la notificación activa (si la hay) sobre el gameCanvas
void renderNotification();
// Variables - Efectos
bool fade; // Indica si esta activo el efecto de fade
@@ -124,4 +134,11 @@ class Screen {
// Dibuja los efectos
void renderFX();
// Muestra una notificación en la línea superior del canvas durante durationMs.
// Sobrescribe cualquier notificación activa (sin apilación).
void notify(const std::string &text, color_t textColor, color_t outlineColor, Uint32 durationMs);
// Limpia la notificación actual
void clearNotification();
};