TurtleBrains  0.3.5
High quality, portable, C++ framework for rapid 2D game development.
tb_sprite_sheet.hpp
1 
9 #ifndef TurtleBrains_SpriteSheet_hpp
10 #define TurtleBrains_SpriteSheet_hpp
11 
12 #include <turtle_brains/graphics/tb_sprite.hpp> //for SpriteFrame
13 #include <turtle_brains/graphics/tb_animated_sprite.hpp> //for AnimationSequence
14 #include <turtle_brains/graphics/tb_texture_manager.hpp>
15 #include <turtle_brains/core/tb_string.hpp>
16 
17 #include <map>
18 
19 namespace TurtleBrains::Graphics
20 {
21 
32  {
33  public:
34  typedef std::map<String, AnimationSequence> AnimationSequenceContainer;
35 
40  explicit SpriteSheet(const TextureHandle& textureHandle = InvalidTexture());
41 
48  void AddSpriteFrame(const String& spriteName, const SpriteFrame& spriteFrame);
49 
54  const SpriteFrame& GetSpriteFrame(const String& spriteName) const;
55 
62  void AddAnimationSequence(const String& spriteName, const String& animationName, const AnimationSequence& animationSequence);
63 
68  const AnimationSequence& GetAnimationSequence(const String& animationName) const;
69 
74  const AnimationSequence& GetAnimationSequence(const String& spriteName, const String& animationName) const;
75 
80  bool AddGlobalAnimationSequencesToSprite(const String& spriteName, const std::vector<String>& animationNames);
81 
85  //bool HasAnimationsForSprite(const String& spriteName) const;
86 
91  const AnimationSequenceContainer& GetAnimationSequencesForSprite(const String& spriteName) const;
92 
97  void SetTextureHandle(const TextureHandle& textureHandle);
98 
102  const TextureHandle& GetTextureHandle(void) const;
103 
104  private:
105  typedef std::map<String, SpriteFrame> SpriteFrameContainer;
106  typedef std::map<String, AnimationSequenceContainer> SpriteAnimationSequences;
107 
108  //Global Animation Sequences
109  //explode, spawn
110 
111  //Sprite Animation Sequences
112  //bunny1, idle, jump, eat, 'explode'
113  //bunny2, idle, jump, eat, 'spawn'
114 
115  SpriteFrameContainer mSpriteFrames;
116  AnimationSequenceContainer mGlobalAnimationSequences; //Global Animations //animationName / sequenceData
117  SpriteAnimationSequences mSpriteAnimationSequences; //Sprite Animations //spriteName, has a table of: animationName / sequenceData
118  String mSpriteSheetName;
119  TextureHandle mTextureHandle;
120  };
121 
122 }; /* namespace TurtleBrains::Graphics */
123 
125 
126 #endif /* TurtleBrains_SpriteSheet_hpp */
Definition: tb_animated_sprite.hpp:28
Definition: tb_sprite_sheet.hpp:32
const TextureHandle & GetTextureHandle(void) const
const AnimationSequence & GetAnimationSequence(const String &spriteName, const String &animationName) const
void AddSpriteFrame(const String &spriteName, const SpriteFrame &spriteFrame)
const SpriteFrame & GetSpriteFrame(const String &spriteName) const
const AnimationSequenceContainer & GetAnimationSequencesForSprite(const String &spriteName) const
SpriteSheet(const TextureHandle &textureHandle=InvalidTexture())
const AnimationSequence & GetAnimationSequence(const String &animationName) const
bool AddGlobalAnimationSequencesToSprite(const String &spriteName, const std::vector< String > &animationNames)
void SetTextureHandle(const TextureHandle &textureHandle)
void AddAnimationSequence(const String &spriteName, const String &animationName, const AnimationSequence &animationSequence)
Give the GameScene and Entities something to display, Text, Sprites and AnimatedSprites help bring th...
TextureHandle InvalidTexture(void)
Definition: tb_sprite.hpp:28