TurtleBrains  0.3.1
High quality, portable, C++ framework for rapid 2D game development.
tbx_parallax_backdrop.h
1 
9 #ifndef _TurtleBrainsExpress_ParallaxBackdrop_h_
10 #define _TurtleBrainsExpress_ParallaxBackdrop_h_
11 
12 #include "../../graphics/tb_graphic.h"
13 #include "../../graphics/tb_sprite.h"
14 
15 #include <vector>
16 
17 namespace TurtleBrainsExpress
18 {
19  namespace Graphics
20  {
21 
28  {
29  public:
30  enum class ScrollingType
31  {
32  kNoScrolling,
33  kHorizontal,
34  kVertical,
36  };
37 
43  explicit ParallaxBackdrop(const ScrollingType& scrollingType = ScrollingType::kNoScrolling);
44 
48  virtual ~ParallaxBackdrop(void);
49 
62  void AddParallaxLayer(const tbCore::tbString& layerFilepath, const float parallaxMultiplier,
63  const tbMath::Vector2& offset = tbMath::Vector2::Zero());
64 
68  ScrollingType GetScrollingType(void) const { return mScrollingType; }
69 
70  protected:
75  virtual void OnRender(void) const override;
76 
77  private:
78  struct ParallaxLayer
79  {
80  tbGraphics::Sprite mSprite;
81  float mMultiplier;
82  };
83 
84  std::vector<ParallaxLayer> mParallaxLayers;
85  const ScrollingType mScrollingType;
86  };
87 
88  }; /* namespace Graphics */
89 }; /* namespace TurtleBrainsExpress */
90 
92 
93 #endif /* _TurtleBrainsExpress_ParallaxBackdrop_h_ */
Definition: tb_vector.h:47
void AddParallaxLayer(const tbCore::tbString &layerFilepath, const float parallaxMultiplier, const tbMath::Vector2 &offset=tbMath::Vector2::Zero())
ScrollingType GetScrollingType(void) const
Definition: tbx_parallax_backdrop.h:68
Definition: tb_graphic.h:61
Definition: tbx_parallax_backdrop.h:19
A collection of objects and functions to express games quickly.
static Vector2 Zero(void)
Definition: tb_vector.h:53
Definition: tbx_parallax_backdrop.h:27
ParallaxBackdrop(const ScrollingType &scrollingType=ScrollingType::kNoScrolling)
ScrollingType
Definition: tbx_parallax_backdrop.h:30
virtual void OnRender(void) const override
std::string tbString
Definition: tb_string.h:335
Definition: tb_sprite.h:136