aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-10-23 14:11:09 +0800
committerchai <chaifix@163.com>2018-10-23 14:11:09 +0800
commita164919e8eb3409d13bb225cc0e6f0b95446e8e0 (patch)
tree4f78bac83bf050914689afed2b6a257339038709 /src
parent549a6121f04139c7a2d400da99c69ccdcc5e919b (diff)
+animation
Diffstat (limited to 'src')
-rw-r--r--src/libjin/Game/je_entity.h5
-rw-r--r--src/libjin/Graphics/animation/je_animation.h29
-rw-r--r--src/libjin/Graphics/animation/je_clip.h22
3 files changed, 56 insertions, 0 deletions
diff --git a/src/libjin/Game/je_entity.h b/src/libjin/Game/je_entity.h
index d67a71f..9dda4d9 100644
--- a/src/libjin/Game/je_entity.h
+++ b/src/libjin/Game/je_entity.h
@@ -61,6 +61,11 @@ namespace JinEngine
bool mIsVisible; // if the entity is visible or not
bool mIsActive; // if the entity is joined into the logic
+ ///
+ /// Position of entity.
+ ///
+ Math::Vector2<float> mPosition;
+
};
///
diff --git a/src/libjin/Graphics/animation/je_animation.h b/src/libjin/Graphics/animation/je_animation.h
index f330a0c..b3bb9fb 100644
--- a/src/libjin/Graphics/animation/je_animation.h
+++ b/src/libjin/Graphics/animation/je_animation.h
@@ -1,6 +1,12 @@
#ifndef __JE_ANIMATION_H
#define __JE_ANIMATION_H
+#include <map>
+#include <vector>
+#include <string>
+
+#include "je_clip.h"
+
namespace JinEngine
{
namespace Graphics
@@ -11,6 +17,29 @@ namespace JinEngine
///
class Animation
{
+ public:
+ void addClip(const std::string& key, Clip* clip);
+ bool hasKey(const std::string& key);
+
+ void play();
+ void switchClipByKey(const std::string& key);
+ void switchClipByName(const std::string& name);
+ void switchClip(const Clip* clip);
+
+ ///
+ /// Control clips.
+ ///
+ void stopClip();
+ void pauseClip();
+ void rewindClip();
+ void startClip();
+
+ private:
+ ///
+ /// Map a key to clips.
+ ///
+ std::map<std::string, Clip*> mClips;
+ Clip* mCurrentClip;
};
diff --git a/src/libjin/Graphics/animation/je_clip.h b/src/libjin/Graphics/animation/je_clip.h
index d6709dc..cfa579f 100644
--- a/src/libjin/Graphics/animation/je_clip.h
+++ b/src/libjin/Graphics/animation/je_clip.h
@@ -1,6 +1,11 @@
#ifndef __JE_CLIP_H
#define __JE_CLIP_H
+#include <vector>
+#include <string>
+
+#include "../je_sprite.h"
+
namespace JinEngine
{
namespace Graphics
@@ -11,6 +16,23 @@ namespace JinEngine
///
class Clip
{
+ public:
+ void start();
+ void pause();
+ void stop();
+ void rewind();
+ void setSpeed(float speed);
+
+ private:
+ ///
+ /// Frames
+ ///
+ std::vector<Sprite*> mFrames;
+
+ ///
+ /// Clip playing speed.
+ ///
+ float mSpeed;
};