diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libjin/Game/je_entity.h | 5 | ||||
-rw-r--r-- | src/libjin/Graphics/animation/je_animation.h | 29 | ||||
-rw-r--r-- | src/libjin/Graphics/animation/je_clip.h | 22 |
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; }; |