From d8d7963b9b658799b806d516bbd6b44c4baa28f8 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 24 Oct 2018 22:08:46 +0800 Subject: =?UTF-8?q?+=E7=B2=92=E5=AD=90=E7=B3=BB=E7=BB=9F=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/Graphics/animation/je_animation.h | 40 +++++++++++++++++----------- 1 file changed, 24 insertions(+), 16 deletions(-) (limited to 'src/libjin/Graphics/animation/je_animation.h') diff --git a/src/libjin/Graphics/animation/je_animation.h b/src/libjin/Graphics/animation/je_animation.h index ca5758f..aa4c93f 100644 --- a/src/libjin/Graphics/animation/je_animation.h +++ b/src/libjin/Graphics/animation/je_animation.h @@ -1,11 +1,10 @@ #ifndef __JE_ANIMATION_H #define __JE_ANIMATION_H -#include #include #include -#include "je_clip.h" +#include "../je_sprite.h" namespace JinEngine { @@ -13,32 +12,41 @@ namespace JinEngine { /// - /// + /// Animation clip with key. /// class Animation { public: - void addClip(const std::string& key, Clip* clip); - bool hasKey(const std::string& key); + void onUpdate(float dt); - void play(); - void switchClipByKey(const std::string& key); - void switchClip(const Clip* clip); + void start(); + void pause(); + void stop(); + void rewind(); + void setSpeed(float speed); /// - /// Control clips. + /// Get current frame index. /// - void stopClip(); - void pauseClip(); - void rewindClip(); - void startClip(); + uint getCurrentFrame(); + + /// + /// Set current frame index. + /// + /// @param frame Current frame to play. + /// + void setCurrentFrame(uint frame); private: /// - /// Map a key to clips. + /// Key frames. + /// + std::vector mFrames; + + /// + /// Animation playing speed. /// - std::map mClips; - Clip* mCurrentClip; + float mSpeed; }; -- cgit v1.1-26-g67d0