diff options
author | Clyne Sullivan <tullivan99@gmail.com> | 2016-01-20 08:47:05 -0500 |
---|---|---|
committer | Clyne Sullivan <tullivan99@gmail.com> | 2016-01-20 08:47:05 -0500 |
commit | d6469d0cafc03c468c5977ec345d08b3ccb6fd0a (patch) | |
tree | c9b21ddcae956cc9d419d4d56997063eb95fc5f4 /include | |
parent | 1e6676c35ce4990981e8cda389ba39108437d66d (diff) | |
parent | c1774c591f7897c1cfa28e05fdb7c72e07890933 (diff) |
merge, particles
Diffstat (limited to 'include')
-rw-r--r-- | include/Texture.h | 3 | ||||
-rw-r--r-- | include/common.h | 14 | ||||
-rw-r--r-- | include/entities.h | 24 |
3 files changed, 37 insertions, 4 deletions
diff --git a/include/Texture.h b/include/Texture.h index 03593bf..50681bf 100644 --- a/include/Texture.h +++ b/include/Texture.h @@ -30,6 +30,9 @@ namespace Texture{ GLuint loadTexture(const char *fileName); void freeTextures(void); + + void initColorIndex(); + vec2 getIndex(Color c); } /** diff --git a/include/common.h b/include/common.h index fa7356a..0df6533 100644 --- a/include/common.h +++ b/include/common.h @@ -30,14 +30,22 @@ typedef unsigned int uint; #undef near #endif -#include <Texture.h> - /** * This flag lets the compiler know that we want to use shaders. */ #define SHADERS +template<typename N> +N abso(N v){ + if(v < 0.0){ + return v * -1; + }else + return v; +} + +extern GLuint colorIndex; + /** * This structure contains a set of coordinates for ease of coding. */ @@ -68,6 +76,8 @@ typedef struct{ float blue; } Color; +#include <Texture.h> + /** * Define the game's name (displayed in the window title). */ diff --git a/include/entities.h b/include/entities.h index 6328770..fa98285 100644 --- a/include/entities.h +++ b/include/entities.h @@ -57,6 +57,8 @@ public: float velx; float vely; Color color; + vec2 index; + //GLuint tex; float duration; bool canMove; bool fountain; @@ -74,13 +76,29 @@ public: fountain = false; gravity = true; behind = false; + index = Texture::getIndex(c); + //tex = text; } ~Particles(){ } void draw(){ - glColor3f(color.red,color.green,color.blue); - glRectf(loc.x,loc.y,loc.x+width,loc.y+height); + //glColor3f(color.red,color.green,color.blue); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, colorIndex); + glUseProgram(shaderProgram); + glUniform1i(glGetUniformLocation(shaderProgram, "sampler"), 0); + glEnable(GL_TEXTURE_2D); + glColor3ub(255,255,255); + glBegin(GL_QUADS); + glTexCoord2f(.25*index.x, .126*index.y); glVertex2i(loc.x, loc.y); + glTexCoord2f(.26*index.x, .126*index.y); glVertex2i(loc.x + width, loc.y); + glTexCoord2f(.26*index.x, .125*index.y); glVertex2i(loc.x + width, loc.y + height); + glTexCoord2f(.25*index.x, .125*index.y); glVertex2i(loc.x, loc.y + width); + glEnd(); + glDisable(GL_TEXTURE_2D); + glUseProgram(0); + //glRectf(loc.x,loc.y,loc.x+width,loc.y+height); } bool kill(float delta){ duration -= delta; @@ -91,6 +109,8 @@ public: } }; +void initEntity(); + class Entity{ public: Inventory *inv; |