aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorClyne Sullivan <tullivan99@gmail.com>2016-01-20 08:47:05 -0500
committerClyne Sullivan <tullivan99@gmail.com>2016-01-20 08:47:05 -0500
commitd6469d0cafc03c468c5977ec345d08b3ccb6fd0a (patch)
treec9b21ddcae956cc9d419d4d56997063eb95fc5f4 /include
parent1e6676c35ce4990981e8cda389ba39108437d66d (diff)
parentc1774c591f7897c1cfa28e05fdb7c72e07890933 (diff)
merge, particles
Diffstat (limited to 'include')
-rw-r--r--include/Texture.h3
-rw-r--r--include/common.h14
-rw-r--r--include/entities.h24
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;