group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
DamageNumberWidget.hpp
Go to the documentation of this file.
1
3
4#pragma once
5
6#include "hud/HudWidget.hpp"
7
8#include <array>
9#include <glm/mat4x4.hpp>
10
18{
20 void update(float dt, const HudGameState& state, HudTweenPool& tweens) override;
21 void draw(HudContext& ctx, float drawX, float drawY) override;
22
23private:
24 struct Entry
25 {
27 float driftY = 0.f;
28 int damage = 0;
30 float life = 0.f;
31 float maxLife = 0.f;
32 };
33
34 static constexpr int k_maxEntries = 32;
35 std::array<Entry, k_maxEntries> entries_{};
36 int count_ = 0;
37
38 glm::mat4 viewProj_{1.f};
39 float screenW_ = 1280.f;
40 float screenH_ = 720.f;
41};
Base struct for all HUD widgets.
Accumulates HUD geometry during a frame for batch rendering.
Definition HudContext.hpp:18
Fixed-size tween pool. No heap allocations.
Definition HudTween.hpp:35
Definition DamageNumberWidget.hpp:25
float worldX
Definition DamageNumberWidget.hpp:26
float life
Remaining lifetime.
Definition DamageNumberWidget.hpp:30
float driftY
Accumulated upward drift.
Definition DamageNumberWidget.hpp:27
float worldY
Definition DamageNumberWidget.hpp:26
float worldZ
Original hit position.
Definition DamageNumberWidget.hpp:26
HudColor color
Definition DamageNumberWidget.hpp:29
int damage
Definition DamageNumberWidget.hpp:28
float maxLife
Initial lifetime (for alpha calc).
Definition DamageNumberWidget.hpp:31
void draw(HudContext &ctx, float drawX, float drawY) override
Emit geometry into the draw context.
Definition DamageNumberWidget.cpp:53
static constexpr int k_maxEntries
Definition DamageNumberWidget.hpp:34
int count_
Definition DamageNumberWidget.hpp:36
float screenH_
Definition DamageNumberWidget.hpp:40
void update(float dt, const HudGameState &state, HudTweenPool &tweens) override
Called each frame before draw(). Update animation, consume events.
Definition DamageNumberWidget.cpp:14
std::array< Entry, k_maxEntries > entries_
Definition DamageNumberWidget.hpp:35
float screenW_
Definition DamageNumberWidget.hpp:39
DamageNumberWidget()
Definition DamageNumberWidget.cpp:8
glm::mat4 viewProj_
Definition DamageNumberWidget.hpp:38
RGBA color for HUD elements (linear space, straight alpha).
Definition HudTypes.hpp:15
Snapshot of game state consumed by the HUD each frame.
Definition HudTypes.hpp:148
Base class for a retained HUD element.
Definition HudWidget.hpp:16