This commit is contained in:
Bram Verhulst
2024-06-09 22:03:29 +02:00
parent d7389411f5
commit 5f1dcd5788
76 changed files with 1532 additions and 385 deletions

View File

@@ -5,20 +5,20 @@
#include "utils.h"
Animation::Animation(Texture* pTexture, int frames, float frameDuration, Rectf srcRect, bool isLooping): m_pTexture(pTexture), m_SrcRect(srcRect), m_Frames(frames),
m_isLooping(isLooping), m_FrameDuration(frameDuration) {
m_IsLooping(isLooping), m_FrameDuration(frameDuration) {
}
void Animation::Update(float elapsedSec) {
if (m_isPlaying) {
if (m_IsPlaying) {
m_FrameTimer -= elapsedSec;
if (m_FrameTimer <= 0.0f) {
m_FrameTimer = m_FrameDuration;
++m_CurrentFrame;
if (m_CurrentFrame >= m_Frames) {
m_CurrentFrame = 0;
if (!m_isLooping) {
m_hasPlayedOnce = true;
m_isPlaying = false;
if (!m_IsLooping) {
m_HasPlayedOnce = true;
m_IsPlaying = false;
}
}
}
@@ -32,22 +32,22 @@ void Animation::Draw(const Vector2f& pos, const Rectf& dst) const {
Rectf src = m_SrcRect;
src.left += static_cast<float>(m_CurrentFrame) * src.width;
m_pTexture->Draw(dst, src, m_isFlipped);
m_pTexture->Draw(dst, src, m_IsFlipped);
}
void Animation::SetPlaying(bool isPlaying) {
m_isPlaying = isPlaying;
m_IsPlaying = isPlaying;
}
void Animation::SetFlipped(bool isFlipped) {
m_isFlipped = isFlipped;
m_IsFlipped = isFlipped;
}
void Animation::Reset() {
m_CurrentFrame = 0;
m_hasPlayedOnce = false;
m_isPlaying = true;
m_HasPlayedOnce = false;
m_IsPlaying = true;
m_FrameTimer = m_FrameDuration;
}
bool Animation::IsDone() const {
return m_hasPlayedOnce && !m_isLooping;
return m_HasPlayedOnce && !m_IsLooping;
}
int Animation::GetFrameCount() const {
return m_Frames;

View File

@@ -5,6 +5,8 @@ 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;
@@ -30,9 +32,9 @@ private:
float m_FrameDuration { 0.1f };
bool m_isPlaying { true };
bool m_isFlipped { false };
bool m_IsPlaying { true };
bool m_IsFlipped { false };
bool m_isLooping { true };
bool m_hasPlayedOnce { false };
bool m_IsLooping { true };
bool m_HasPlayedOnce { false };
};