SUPER Space invader : Turbo edition DX - VS GOD 1.0.0
A simple space invader ripoff
sprite.h
Go to the documentation of this file.
11#ifndef DISPLAY_SPRITE_H
12#define DISPLAY_SPRITE_H
13
14#include <cstdint>
15#include <vector>
16
17#include "../graphics/idrawable.h"
18#include "../graphics/rgbacolor.h"
19#include "../graphics/vec2d.h"
20#include "../transition/itransitionable.h"
21
22namespace nsGui {
23
29{
30public:
36 };
37
44 Sprite(const std::string& filename, const nsGraphics::Vec2D& position = nsGraphics::Vec2D());
45
53 Sprite(const std::vector<nsGraphics::RGBAcolor>& pixelData, const uint32_t& rowSize, const nsGraphics::Vec2D& position = nsGraphics::Vec2D());
54
55 virtual void draw(MinGL& window) const override;
56
57 virtual void getValues(const int &id, std::vector<float> &values) override;
58 virtual void setValues(const int &id, const std::vector<float> &values) override;
59
65 const uint32_t& getRowSize() const;
66
72 const std::vector<nsGraphics::RGBAcolor>& getPixelData() const;
73
80
86 void setPosition(const nsGraphics::Vec2D& position);
87
94
95private:
100 struct FileBegin {
101 uint16_t magic;
102 uint32_t headmagic;
103 uint16_t fileVersion;
104 uint32_t pixelCount;
105 uint32_t rowSize;
106 uint32_t datamagic;
107 } __attribute__((packed));
108
112 nsGraphics::Vec2D m_position;
113
117 uint32_t m_rowSize;
118
122 std::vector<nsGraphics::RGBAcolor> m_pixelData;
123}; // class Sprite
124
125} // namespace nsGui
126
127#endif // DISPLAY_SPRITE_H
Classe de base de minGL 2.
Definition: mingl.h:35
Interface pour un objet affichable.
Definition: idrawable.h:30
Classe représentant un vecteur deux-dimensionnel.
Definition: vec2d.h:26
Permet de charger une image depuis un format créé pour l'occasion, le .si2.
Definition: sprite.h:29
TransitionIds
TransitionIds : Liste de toutes les transitions que cet élément peut exécuter.
Definition: sprite.h:34
@ TRANSITION_POSITION
Definition: sprite.h:35
virtual void draw(MinGL &window) const override
Fonction pour afficher l'objet.
virtual void getValues(const int &id, std::vector< float > &values) override
Récupère des valeurs dans un vecteur de float pour l'ID spécifié
const nsGraphics::Vec2D & getPosition() const
Récupère la Position du sprite.
nsGraphics::Vec2D computeSize() const
Calcule la taille du sprite.
Sprite(const std::string &filename, const nsGraphics::Vec2D &position=nsGraphics::Vec2D())
Constructeur pour la classe Sprite, charge les données depuis un fichier.
virtual void setValues(const int &id, const std::vector< float > &values) override
Définit les nouvelles valeurs pour l'ID spécifié
void setPosition(const nsGraphics::Vec2D &position)
Définit la nouvelle Position du sprite.
Sprite(const std::vector< nsGraphics::RGBAcolor > &pixelData, const uint32_t &rowSize, const nsGraphics::Vec2D &position=nsGraphics::Vec2D())
Constructeur pour la classe Sprite, copie les données depuis un vecteur de pixels.
const std::vector< nsGraphics::RGBAcolor > & getPixelData() const
Récupère le vecteur contenant les pixels de l'image.
const uint32_t & getRowSize() const
Récupère le nombre de pixels par ligne.
Une classe abstraite pour n'importe quelle élément pouvant effectuer une transition entre deux états.
Espace de nom pour des éléments d'interface complexes.
Definition: glut_font.h:13
uint32_t rowSize
Definition: sprite.h:4
uint32_t datamagic
Definition: sprite.h:5
uint16_t fileVersion
Definition: sprite.h:2
uint32_t headmagic
Definition: sprite.h:1
uint16_t magic
Definition: sprite.h:0
uint32_t pixelCount
Definition: sprite.h:3