26 lines
1.1 KiB
C++
26 lines
1.1 KiB
C++
#pragma once
|
|
|
|
namespace Effects::Shadow {
|
|
|
|
// Mida de cada fotograma del sprite compartit de la sombra.
|
|
// El sprite és una tira horitzontal de fotogrames de 16x16, ordenats
|
|
// del més petit (índex 0) al més gran (últim índex).
|
|
constexpr int FRAME_SIZE = 16;
|
|
|
|
// Clau amb què `Resource::Cache` té carregada la Surface compartida.
|
|
// El precarrega el Director al boot.
|
|
constexpr const char* CACHE_KEY = "shadow";
|
|
|
|
// Pinta la sombra al canvas. `height_factor` selecciona el fotograma:
|
|
// 0.0 (entitat al terra) → fotograma més gran, 1.0 (pic del salt o
|
|
// entitat més alta del terra) → fotograma més petit. La tira es
|
|
// divideix en bandes uniformes; valors fora de [0, 1] es clampen.
|
|
//
|
|
// El fotograma s'ancora al quadrat 16x16 inferior d'una entitat de
|
|
// 16x16/16x32 centrada en `center_x` amb peus a `feet_y`: la vora
|
|
// inferior del sprite queda exactament a `feet_y`. La posició
|
|
// visual de l'oval dins del fotograma la decideix l'artista al GIF.
|
|
void render(int center_x, int feet_y, float height_factor);
|
|
|
|
} // namespace Effects::Shadow
|