Hummingbird Framework
 All Classes Functions Variables Modules Pages
SpriteComponent.h
1 #ifndef HB_SPRITE_COMPONENT_H
2 #define HB_SPRITE_COMPONENT_H
3 #include <SFML/Graphics.hpp>
4 #include <string>
5 #include "Renderer.h"
6 #include "../Core/GameObject.h"
7 #include "../Core/Transform.h"
8 #include "../Core/Time.h"
9 #include "Sprite.h"
10 
11 
12 namespace hb
13 {
19  {
20  public:
21  SpriteComponent(const Sprite& sprite = Sprite(), const std::vector<int>& frame_order = std::vector<int>(1, 0), const Time& frame_time = Time::seconds(0));
22  virtual ~SpriteComponent() override;
23 
24  virtual void postUpdate() override;
25 
26  void setSprite(const Sprite& sprite);
27  void setFrameOrder(const std::vector<int>& frame_order);
28  const std::vector<int>& getFrameOrder() const;
29  void setFrameTime(const Time& frame_time);
30  const Time& getFrameTime() const;
31  const Sprite& getSprite() const;
32  Sprite& getSprite();
33  Vector2d getSize() const;
34  bool isVisible() const;
35  void setVisible(bool visible);
36  bool isLooping() const;
37  void loop(bool loop);
38  bool isPlaying() const;
39  void play();
40  void stop();
41  void setColor(const Color& color);
42  const Color& getColor() const;
43 
44  protected:
45  Vector2d getCoords();
46 
47  Time m_time_left, m_frame_time;
48  unsigned int m_current_frame;
49  bool m_visible;
50  bool m_playing, m_looping;
51  sf::Sprite m_sprite;
52  Sprite m_animation;
53  std::vector<int> m_frame_order;
54  Color m_color;
55  };
56 }
57 #endif
static Time seconds(double seconds)
Construct Time from seconds.
Object with a position, rotation and scale in a 3D space.
Definition: Transform.h:12
Definition: Sprite.h:15
Definition: Box2DPlugin.h:6
Base class for implementing custom Components.
Definition: GameObject.h:57
A color represented in the RGBA format.
Definition: Color.h:6
Definition: SpriteComponent.h:18
Class for representing intervals of time.
Definition: Time.h:13
virtual void postUpdate() override
Function called in the post-update step.
A 2D vector.
Definition: Vector2d.h:14