GameKit  0.0.1a
C++ gamedev tools
Sprite.hpp
Go to the documentation of this file.
1 /*
2  * =====================================================================================
3  *
4  * Filename: Sprite.hpp
5  *
6  * Description:
7  *
8  * Created: 17/01/2018 19:48:01
9  *
10  * Author: Quentin Bazin, <quent42340@gmail.com>
11  *
12  * =====================================================================================
13  */
14 #ifndef GK_SPRITE_HPP_
15 #define GK_SPRITE_HPP_
16 
17 #include "gk/graphics/Image.hpp"
19 
20 namespace gk {
21 
22 class Sprite : public Image {
23  public:
24  Sprite() = default;
25  Sprite(const std::string &textureName, u16 frameWidth, u16 frameHeight, bool isAnimated = false);
26 
27  void load(const Sprite &sprite);
28  void load(const std::string &textureName, u16 frameWidth, u16 frameHeight, bool isAnimated = false);
29 
30  void updateAnimations();
31 
32  void addAnimation(const SpriteAnimation &animation) { m_animations.emplace_back(animation); }
33 
34  u16 currentFrame() const { return m_currentFrame; }
35 
36  u16 frameWidth() const { return m_frameWidth; }
37  u16 frameHeight() const { return m_frameHeight; }
38 
39  bool hasAnimations() { return m_animations.size() != 0; }
40 
43 
44  SpriteAnimation &getAnimation(std::size_t i) { return m_animations.at(i); }
45  const SpriteAnimation &getAnimation(std::size_t i) const { return m_animations.at(i); }
46 
49 
50  bool isAnimated() const { return m_isAnimated; }
52 
53  private:
54  std::vector<SpriteAnimation> m_animations;
55 
59 
62 
63  bool m_isAnimated = false;
64 };
65 
66 } // namespace gk
67 
68 #endif // GK_SPRITE_HPP_
SpriteAnimation & getAnimation(std::size_t i)
Definition: Sprite.hpp:44
u16 frameWidth() const
Definition: Sprite.hpp:36
void addAnimation(const SpriteAnimation &animation)
Definition: Sprite.hpp:32
u16 m_previousAnimation
Definition: Sprite.hpp:58
const SpriteAnimation & currentAnimation() const
Definition: Sprite.hpp:42
void load(const Sprite &sprite)
Definition: Sprite.cpp:23
unsigned short u16
Definition: IntTypes.hpp:22
u16 m_currentAnimation
Definition: Sprite.hpp:57
bool m_isAnimated
Definition: Sprite.hpp:63
void updateAnimations()
Definition: Sprite.cpp:52
void setCurrentAnimation(u16 currentAnimation)
Definition: Sprite.cpp:73
bool hasAnimations()
Definition: Sprite.hpp:39
u16 m_currentFrame
Definition: Sprite.hpp:56
const SpriteAnimation & getAnimation(std::size_t i) const
Definition: Sprite.hpp:45
void setAnimated(bool isAnimated)
Definition: Sprite.hpp:51
u16 m_frameHeight
Definition: Sprite.hpp:61
u16 m_frameWidth
Definition: Sprite.hpp:60
std::vector< SpriteAnimation > m_animations
Definition: Sprite.hpp:54
bool isAnimated() const
Definition: Sprite.hpp:50
SpriteAnimation & currentAnimation()
Definition: Sprite.hpp:41
u16 frameHeight() const
Definition: Sprite.hpp:37
u16 currentFrame() const
Definition: Sprite.hpp:34
void setCurrentFrame(u16 currentFrame)
Definition: Sprite.cpp:64
Sprite()=default