TurtleBrains  0.3.5
High quality, portable, C++ framework for rapid 2D game development.
tb_sprite_map.hpp
1 
9 #ifndef TurtleBrains_SpriteMap_hpp
10 #define TurtleBrains_SpriteMap_hpp
11 
12 #include <turtle_brains/graphics/tb_sprite.hpp>
13 
14 namespace TurtleBrains::Graphics
15 {
16 
21  class SpriteMap// : public Graphic
22  {
23  public:
41  SpriteMap(const TextureHandle& textureHandle, const PixelSpace& frameWidth, const PixelSpace& frameHeight,
42  const PixelSpace& spacingX = 0, const PixelSpace& spacingY = 0, const PixelSpace& offsetX = 0, const PixelSpace& offsetY = 0);
43 
48  virtual ~SpriteMap(void);
49 
53  SpriteFrame GetSpriteFrameAtIndex(const size_t& frameIndex) const;
54 
58  SpriteFrame GetSpriteFrameAtLocation(const size_t& frameColumn, const size_t& frameRow) const;
59 
64  size_t GetIndexCount(void) const;
65 
70  size_t GetColumnCount(void) const;
71 
76  size_t GetRowCount(void) const;
77 
82 
87 
92 
96  void RenderSpritesByIndex(const tbCore::uint16* const spriteArray, const size_t& columnCount, const size_t& rowCount,
97  const tbMath::Vector2& position = tbMath::Vector2::Zero()) const;
98 
99  protected:
100 
101  private:
102  const TextureHandle mTextureHandle;
103  const PixelSpace mTextureWidth; //must come after
104  const PixelSpace mTextureHeight;
105 
106  PixelSpace mFrameWidth;
107  PixelSpace mFrameHeight;
108  PixelSpace mSpacingX;
109  PixelSpace mSpacingY;
110  PixelSpace mOffsetX;
111  PixelSpace mOffsetY;
112  };
113 
114 }; /* namespace TurtleBrains::Graphics */
115 
117 
118 #endif /* TurtleBrains_SpriteMap_hpp */
Definition: tb_sprite_map.hpp:22
PixelSpace GetFrameWidth(void) const
PixelSpace GetFrameHeight(void) const
void RenderSpritesByIndex(const tbCore::uint16 *const spriteArray, const size_t &columnCount, const size_t &rowCount, const tbMath::Vector2 &position=tbMath::Vector2::Zero()) const
SpriteFrame GetSpriteFrameAtLocation(const size_t &frameColumn, const size_t &frameRow) const
SpriteFrame GetSpriteFrameAtIndex(const size_t &frameIndex) const
TextureHandle GetTextureHandle(void) const
size_t GetColumnCount(void) const
size_t GetIndexCount(void) const
SpriteMap(const TextureHandle &textureHandle, const PixelSpace &frameWidth, const PixelSpace &frameHeight, const PixelSpace &spacingX=0, const PixelSpace &spacingY=0, const PixelSpace &offsetX=0, const PixelSpace &offsetY=0)
Definition: tb_vector.hpp:99
static TypedVector2 Zero(void)
Definition: tb_vector.hpp:104
std::uint16_t uint16
Unsigned integer with a size of 16 bits. Supports values from 0 to 65535.
Definition: tb_types.hpp:25
Give the GameScene and Entities something to display, Text, Sprites and AnimatedSprites help bring th...
tbCore::uint16 PixelSpace
Definition: tb_texture_manager.hpp:34
Definition: tb_sprite.hpp:28