mirror of
https://github.com/HowestDAE/dae16-VerhulstBram.git
synced 2025-12-16 21:11:47 +01:00
48 lines
929 B
C++
48 lines
929 B
C++
#pragma once
|
|
#include "Texture.h"
|
|
|
|
class Animation
|
|
{
|
|
public:
|
|
Animation(Texture* pTexture, int frames, float frameDuration, Rectf srcRect, bool isLooping = true);
|
|
~Animation() = default;
|
|
|
|
void Update(float elapsedSec);
|
|
void Draw(const Vector2f& pos) const;
|
|
void Draw(const Vector2f& pos, const Rectf& dst) const;
|
|
|
|
|
|
void SetPlaying(bool isPlaying) {
|
|
m_isPlaying = isPlaying;
|
|
}
|
|
void SetFlipped(bool isFlipped) {
|
|
m_isFlipped = isFlipped;
|
|
}
|
|
|
|
void Reset() {
|
|
m_CurrentFrame = 0;
|
|
m_hasPlayedOnce = false;
|
|
m_isPlaying = true;
|
|
m_FrameTimer = m_FrameDuration;
|
|
}
|
|
bool IsDone() const {
|
|
return m_hasPlayedOnce && !m_isLooping;
|
|
}
|
|
|
|
private:
|
|
Texture* m_pTexture;
|
|
Rectf m_SrcRect;
|
|
|
|
int m_Frames { 0 };
|
|
int m_CurrentFrame { 0 };
|
|
float m_FrameTimer { 0.0f };
|
|
|
|
float m_FrameDuration { 0.1f };
|
|
|
|
bool m_isPlaying { true };
|
|
bool m_isFlipped { false };
|
|
|
|
bool m_isLooping { true };
|
|
bool m_hasPlayedOnce { false };
|
|
};
|