#include "pch.h" #include "GuiMeter.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 { m_Animation->Draw(m_Position, Rectf{m_Position, m_DrawSize}); utils::DrawRect(Rectf { m_Position, m_DrawSize}); } void GuiMeter::Update(float elapsedSec) { m_Value += 1; const int frame = static_cast(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; }