Files
prog2/Game/Gui/GuiMeter.cpp
2026-04-12 23:15:20 +02:00

29 lines
1.1 KiB
C++

#include "pch.h"
#include "GuiMeter.h"
#include "colors.h"
#include "TextureManager.h"
#include "utils.h"
GuiMeter::GuiMeter(const std::string& filePath, Vector2f pos, Vector2f frameSize, int frameCount, TextureManager* manager): GuiMeter(
filePath, pos, frameSize, frameSize, frameCount, manager) {
}
GuiMeter::GuiMeter(const std::string& filePath, Vector2f pos, Vector2f frameSize, Vector2f drawSize, int frameCount, TextureManager* manager): m_Position(pos),
m_DrawSize(drawSize), m_FrameCount(frameCount) {
m_Animation = new Animation(manager->GetTexture(filePath), frameCount, 0.0f, Rectf { 0, 0, frameSize.x, frameSize.y }, false);
}
GuiMeter::~GuiMeter() {
delete m_Animation;
}
void GuiMeter::Draw() const {
utils::SetColor(Colors::WHITE);
m_Animation->Draw(m_Position, Rectf{m_Position, m_DrawSize});
// utils::DrawRect(Rectf { m_Position, m_DrawSize});
}
void GuiMeter::Update(float) {
const int frame = static_cast<int>(utils::map(m_Value, 0.0f, m_MaxValue, 0, (float)m_Animation->GetFrameCount()));
m_Animation->SetFrame(frame);
}
void GuiMeter::SetValue(float value) {
m_Value = value;
}