feat(title): paleta neon synthwave per element a l'escena de títol
This commit is contained in:
1 parent
880af293ef
commit
c61299f17f
5 files changed
+40
-10
No files matched your search
@@ -3,6 +3,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
#include <cmath>
|
||||
|
||||
#include "core/defaults/game.hpp"
|
||||
@@ -126,4 +128,18 @@ namespace Defaults::Title {
|
||||
constexpr float TEXT_SPACING = 2.0F;
|
||||
} // namespace Layout
|
||||
|
||||
// Paleta neon de l'escena de títol (cian + magenta synthwave).
|
||||
// alpha = 255 (sentinela "color vàlid") fa que el pipeline ignori
|
||||
// el color global de l'oscil·lador per a aquesta crida.
|
||||
namespace Colors {
|
||||
constexpr SDL_Color LOGO_MAIN = {.r = 80, .g = 240, .b = 255, .a = 255}; // Cian elèctric
|
||||
constexpr SDL_Color LOGO_SHADOW = {.r = 255, .g = 60, .b = 180, .a = 255}; // Magenta neon (offset)
|
||||
constexpr SDL_Color SHIP_P1 = {.r = 255, .g = 100, .b = 200, .a = 255}; // Rosa hot
|
||||
constexpr SDL_Color SHIP_P2 = {.r = 160, .g = 120, .b = 255, .a = 255}; // Violeta elèctric
|
||||
constexpr SDL_Color STARFIELD = {.r = 200, .g = 220, .b = 255, .a = 255}; // Blanc-blau gel
|
||||
constexpr SDL_Color PRESS_START = {.r = 255, .g = 200, .b = 70, .a = 255}; // Ambre neon
|
||||
constexpr SDL_Color JAILGAMES_LOGO = {.r = 120, .g = 220, .b = 200, .a = 255}; // Teal suau
|
||||
constexpr SDL_Color COPYRIGHT = {.r = 140, .g = 180, .b = 200, .a = 255}; // Gris-cian apagat
|
||||
} // namespace Colors
|
||||
|
||||
} // namespace Defaults::Title
|
||||
@@ -94,7 +94,7 @@ namespace Graphics {
|
||||
.rotation_euler = Vec3{.x = star.rot_phase_x, .y = star.rot_phase_y, .z = 0.0F},
|
||||
.scale = star.scale,
|
||||
};
|
||||
drawWireframe(renderer_, *camera_, octahedron_, TRANSFORM, computeBrightness(star));
|
||||
drawWireframe(renderer_, *camera_, octahedron_, TRANSFORM, computeBrightness(star), color_);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,4 +102,8 @@ namespace Graphics {
|
||||
brightness_mult_ = std::max(0.0F, multiplier);
|
||||
}
|
||||
|
||||
void Starfield::setColor(SDL_Color color) {
|
||||
color_ = color;
|
||||
}
|
||||
|
||||
} // namespace Graphics
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "core/graphics/camera3d.hpp"
|
||||
@@ -25,6 +27,7 @@ namespace Graphics {
|
||||
void draw() const;
|
||||
|
||||
void setBrightness(float multiplier);
|
||||
void setColor(SDL_Color color);
|
||||
|
||||
private:
|
||||
struct Star {
|
||||
@@ -45,6 +48,7 @@ namespace Graphics {
|
||||
std::vector<Star> stars_;
|
||||
Mesh3D octahedron_;
|
||||
float brightness_mult_{1.0F};
|
||||
SDL_Color color_{.r = 0, .g = 0, .b = 0, .a = 0}; // alpha=0 → usa color global
|
||||
|
||||
// Volum de spawn / regeneració en l'espai 3D.
|
||||
static constexpr float Z_NEAR_RESPAWN = 5.0F; // Si Z < aquest valor → regenera
|
||||
|
||||
Reference in new issue
Block a user