5#ifndef TILESON_ANIMATION_HPP
6#define TILESON_ANIMATION_HPP
14 inline Animation(
const std::vector<tson::Frame> &frames) : m_frames {frames} {};
16 inline void update(
float timeDeltaMs);
19 inline void setFrames(
const std::vector<tson::Frame> &frames);
23 inline const std::vector<tson::Frame> &
getFrames()
const;
29 inline bool any()
const;
30 inline size_t size()
const;
33 inline int nextFrame();
34 std::vector<tson::Frame> m_frames;
35 uint32_t m_currentFrame {0};
36 float m_timeDelta {0};
59 return (m_frames.size() == 0 || m_currentFrame >= m_frames.size()) ? nullptr : &m_frames.at(m_currentFrame);
64 return m_frames.size();
76 m_timeDelta += timeDeltaMs;
79 m_timeDelta =
static_cast<float>((int32_t)m_timeDelta % frame->
getDuration());
80 m_currentFrame = nextFrame();
85 int Animation::nextFrame()
87 return (m_currentFrame+1 >= m_frames.size()) ? 0 : m_currentFrame + 1;
97 return m_currentFrame;
112 m_currentFrame = currentFrame;
117 m_timeDelta = timeDelta;
126 return m_frames.size() > 0;
Definition Animation.hpp:11
size_t size() const
Definition Animation.hpp:62
Animation(const std::vector< tson::Frame > &frames)
Definition Animation.hpp:14
void setTimeDelta(float timeDelta)
Definition Animation.hpp:115
void setFrames(const std::vector< tson::Frame > &frames)
Definition Animation.hpp:105
uint32_t getCurrentTileId() const
Definition Animation.hpp:100
const tson::Frame * getCurrentFrame() const
Definition Animation.hpp:57
void update(float timeDeltaMs)
Definition Animation.hpp:71
uint32_t getCurrentFrameNumber() const
Definition Animation.hpp:95
float getTimeDelta() const
Definition Animation.hpp:90
void setCurrentFrame(uint32_t currentFrame)
Definition Animation.hpp:110
void reset()
Definition Animation.hpp:47
const std::vector< tson::Frame > & getFrames() const
Definition Animation.hpp:39
bool any() const
Definition Animation.hpp:124
int getDuration() const
Definition Frame.hpp:68
uint32_t getTileId() const
Definition Frame.hpp:77