aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/graphics/animations/animation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/graphics/animations/animation.cpp')
-rw-r--r--src/libjin/graphics/animations/animation.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/libjin/graphics/animations/animation.cpp b/src/libjin/graphics/animations/animation.cpp
new file mode 100644
index 0000000..168c3e3
--- /dev/null
+++ b/src/libjin/graphics/animations/animation.cpp
@@ -0,0 +1,65 @@
+#include "../../math/vector2.hpp"
+#include "animation.h"
+
+using namespace JinEngine::Math;
+
+namespace JinEngine
+{
+ namespace Graphics
+ {
+ namespace Animations
+ {
+
+ Animation::Animation()
+ : mLoop(true)
+ {
+ }
+
+ void Animation::addFrame(const Sprite* frame)
+ {
+ if(frame != nullptr)
+ mFrames.push_back(frame);
+ }
+
+ void Animation::addFrames(const std::vector<Sprite*>& frames)
+ {
+ mFrames.insert(mFrames.end(), frames.begin(), frames.end());
+ }
+
+ void Animation::setSpeed(float speed)
+ {
+ mSpeed = speed;
+ }
+
+ void Animation::setLoop(bool loop)
+ {
+ mLoop = loop;
+ }
+
+ const Sprite* Animation::getFrame(uint index) const
+ {
+ if (mFrames.size() == 0)
+ return nullptr;
+ if (without<uint>(index, 0, mFrames.size() - 1))
+ return nullptr;
+ return mFrames[index];
+ }
+
+ uint Animation::getFrameCount() const
+ {
+ return mFrames.size();
+ }
+
+ bool Animation::isLoop() const
+ {
+ return mLoop;
+ }
+
+ float Animation::getSpeed() const
+ {
+ return mSpeed;
+ }
+
+ }
+ }
+} \ No newline at end of file