Bbop-2D 0.4.1-alpha
Bbop-2D is a c++ library based on openGL to make 2D game. It implement sprite, shape, light and more.
Loading...
Searching...
No Matches
spriteClass.h
Go to the documentation of this file.
1/*
2 * spriteClass.h
3 *
4 * Ce programme est distribué sous les termes de la Licence Publique
5 * Générale GNU, version 3.0, telle que publiée par la Free Software
6 * Foundation. Consultez la Licence Publique Générale GNU pour plus de
7 * détails.
8 *
9 * Vous devez avoir reçu une copie de la Licence Publique Générale GNU
10 * en même temps que ce programme. Si ce n'est pas le cas, consultez
11 * <https://www.gnu.org/licenses/>.
12 */
13
14#ifndef SPRITE_CLASS_H
15#define SPRITE_CLASS_H
16
17#include <GL/glew.h>
18#include <GLFW/glfw3.h>
19#include <cmath>
20
21#include "textureClass.h"
22#include "collisionBoxClass.h"
23#include "bbopMathClass.h"
24#include "bbopGlobal.h"
25#include "shapeClass.h"
26#include "VAO.h"
27#include "VBO.h"
28#include "EBO.h"
29
38class Sprite : public Shape
39{
40 public:
41 Sprite(Texture nTexture, Vector2f nPos, Vector3i nRGB, Vector2f nOrigin,
42 float nRotation, float nAlpha);
43 Sprite(Texture nTexture, Vector2f nPos, Vector3i nRGB,
44 Vector2f nOrigin);
45 Sprite(Texture nTexture, Vector2f nPos);
46
52 Sprite(Texture nTexture);
53
59 Sprite();
60
64 Sprite(const Sprite &other);
65
69 ~Sprite();
70
74 Sprite &operator=(const Sprite &other);
75
76 void Draw(GLint *renderUniforms) const override;
77
83 void setTexture(const Texture &nTexture);
84
91
99 void setNormalMap(const Texture &nNormalMap);
100
107
113 bool getRGBFilterState() const;
114
120 void setRGBFilterState(bool etat);
121
125 void flipHorizontally();
126
130 void flipVertically();
131
132 private:
133 Texture *
134 spriteTexture; // pointeur ves la Texture a bing avec opengl lors du dessin
135 Texture *spriteNormalMap; // normal map de la texture du sprite
136 protected:
137 GLfloat vertices[32];
138 GLuint indices[6];
140 void buildVAO() override; //<! Calcule de la geométrie
141 void updateVBO() override; //<! Recalcule de la géométrie
142 void updateVBORGB() override;
143 void updateVBOAlpha() override;
144};
145
152{
153 public:
154 void Draw(GLint *renderUniforms) const override;
155 void DrawAsFrameBuffer() const;
156};
157
158#endif // !SPRITE_CLASS_H
Definition spriteClass.h:152
void Draw(GLint *renderUniforms) const override
Déssine l'objet héritant de la class.
Definition spriteClass.cpp:359
void DrawAsFrameBuffer() const
Definition spriteClass.cpp:371
Class parente de toutes les formes géométriques(RectangleShape, ConvexShape, CircleShape,...
Definition shapeClass.h:38
Gère un Sprite (Rectangle avec une Texture)
Definition spriteClass.h:39
GLuint indices[6]
Definition spriteClass.h:138
Texture * spriteNormalMap
Definition spriteClass.h:135
Sprite()
Constructeur par défault de Sprite.
Definition spriteClass.cpp:51
void Draw(GLint *renderUniforms) const override
Déssine l'objet héritant de la class.
Definition spriteClass.cpp:248
void setTexture(const Texture &nTexture)
Change la texture du sprite.
Definition spriteClass.cpp:297
void updateVBOAlpha() override
Definition spriteClass.cpp:240
void buildVAO() override
Definition spriteClass.cpp:115
bool isRGBFilter
Definition spriteClass.h:139
bool getRGBFilterState() const
Renvoie si oui ou non le filtre de couleur est activé
Definition spriteClass.cpp:315
~Sprite()
Destructeur de sprite.
Definition spriteClass.cpp:106
Texture * getTexture()
renvoie un pointeur vers la texture du sprite
Definition spriteClass.cpp:303
Texture * spriteTexture
Definition spriteClass.h:134
void flipHorizontally()
Retourne la Texture horizontallement.
Definition spriteClass.cpp:338
void updateVBORGB() override
Definition spriteClass.cpp:227
void setRGBFilterState(bool etat)
Change l'etat du filtre de couleur.
Definition spriteClass.cpp:313
void updateVBO() override
Definition spriteClass.cpp:187
Sprite & operator=(const Sprite &other)
Operateur = de sprite.
Definition spriteClass.cpp:85
Texture * getNormalMap()
renvoie la normal map du sprite
Definition spriteClass.cpp:311
void flipVertically()
Retourne la Texture Verticallement.
Definition spriteClass.cpp:317
GLfloat vertices[32]
Definition spriteClass.h:137
void setNormalMap(const Texture &nNormalMap)
Change la texture de la normal map du sprite.
Definition spriteClass.cpp:305
Contient une texture qui peut être utilisé dans un sprite.
Definition textureClass.h:48
Definition bbopMathClass.h:47
Definition bbopMathClass.h:80