6#include <DirectXMath.h>
89 Camera2D(
int viewportWidth,
int viewportHeight);
129 [[nodiscard]]
float zoom() const noexcept {
183 [[nodiscard]]
static float fitZoom(
float availableWidth,
float availableHeight,
184 float contentWidth,
float contentHeight,
185 float margin = 1.0f);
189 [[nodiscard]]
float scale()
const;
Rectangle aligné sur les axes en coordonnées monde, propre à Core.
Vecteur 2D à composantes flottantes, propre à Core (sans dépendance DirectX).
float scale() const
Definition Camera2D.cpp:56
float zoom() const noexcept
Definition Camera2D.h:129
static float fitZoom(float availableWidth, float availableHeight, float contentWidth, float contentHeight, float margin=1.0f)
Facteur de zoom ajustant un contenu à une surface disponible, sans zone hors champ.
Definition Camera2D.cpp:112
float _zoom
Definition Camera2D.h:194
void setShakeOffsetPixels(const core::Vector2 &offsetPixels)
Décalage de secousse d'écran (LOT-53 TACHE-03), en pixels entiers.
Definition Camera2D.h:119
core::Vector2 worldToScreen(const core::Vector2 &world) const
Convertit une position monde en pixels écran.
Definition Camera2D.cpp:85
static constexpr float PIXELS_PER_UNIT
Nombre de pixels par unité monde (EX-ARCH-021).
Definition Camera2D.h:82
core::Rect visibleBounds() const
Rectangle du monde effectivement cadré par la caméra.
Definition Camera2D.cpp:103
core::Vector2 _shakeOffsetPixels
Décalage de secousse d'écran courant, en pixels (setShakeOffsetPixels) ; nul par défaut.
Definition Camera2D.h:196
int _viewportWidth
Definition Camera2D.h:191
void setZoom(float zoom)
Règle le facteur de zoom.
Definition Camera2D.cpp:51
Camera2D(int viewportWidth, int viewportHeight)
Construit une caméra pour une surface de rendu donnée.
Definition Camera2D.cpp:36
void setCenter(const core::Vector2 &worldCenter)
Place le centre de la caméra.
Definition Camera2D.cpp:46
void setViewportSize(int viewportWidth, int viewportHeight)
Met à jour les dimensions de la surface de rendu (redimensionnement).
Definition Camera2D.cpp:40
core::Vector2 _center
Definition Camera2D.h:193
int _viewportHeight
Definition Camera2D.h:192
DirectX::XMFLOAT4X4 projectionMatrix() const
Matrice de projection monde → clip, pour le vertex shader.
Definition Camera2D.cpp:62
core::Vector2 screenToWorld(const core::Vector2 &screen) const
Convertit une position écran (pixels) en unités monde.
Definition Camera2D.cpp:94
const core::Vector2 & center() const noexcept
Definition Camera2D.h:124
Definition AudioEngine.cpp:15
void advanceScreenShake(ScreenShakeState &state, float fixedDelta) noexcept
Avance une secousse d'écran d'un pas fixe.
Definition Camera2D.cpp:19
constexpr float LANDING_SHAKE_AMPLITUDE_PIXELS
Amplitude conservatrice de la secousse d'écran à un atterrissage lourd (LOT-53 TACHE-03) : discrète,...
Definition Camera2D.h:20
core::Vector2 screenShakeOffset(const ScreenShakeState &state) noexcept
Décalage courant d'une secousse d'écran, en pixels entiers (EX-ARCH-022).
Definition Camera2D.cpp:26
void triggerScreenShake(ScreenShakeState &state, float amplitudePixels, float duration) noexcept
Déclenche (ou relance) une secousse d'écran.
Definition Camera2D.cpp:12
constexpr float SCREEN_SHAKE_DURATION
Durée de toute secousse d'écran, en secondes – brève par construction.
Definition Camera2D.h:24
constexpr float DEATH_SHAKE_AMPLITUDE_PIXELS
Amplitude de la secousse à la mort du personnage : légèrement plus marquée que l'atterrissage.
Definition Camera2D.h:22
Rectangle aligné sur les axes (AABB) en unités monde.
Definition Rect.h:23
Vecteur bidimensionnel en coordonnées monde (composantes float).
Definition Vector2.h:21
État déterministe d'une secousse d'écran en cours de décroissance vers zéro.
Definition Camera2D.h:33
float duration
Durée totale de la secousse, en secondes.
Definition Camera2D.h:39
float amplitudePixels
Amplitude au déclenchement, en pixels écran.
Definition Camera2D.h:35
float elapsed
Temps écoulé depuis le déclenchement, en secondes.
Definition Camera2D.h:37