aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClyne Sullivan <tullivan99@gmail.com>2015-10-29 09:21:36 -0400
committerClyne Sullivan <tullivan99@gmail.com>2015-10-29 09:21:36 -0400
commit9133b5b379f565ca9f268b63864155051c464cb1 (patch)
treedeca5a99dfeaa16b03839477683e2e142fd51066
parentdf20af833773ee67d78b3f2e8ab3a0a1753e523a (diff)
parentffd36d33bf65fe0dc745aeb632dcf73951df6bbf (diff)
gotta go fast
-rw-r--r--assets/bgFarTree.pngbin0 -> 38790 bytes
-rw-r--r--assets/bgFrontTree.png (renamed from assets/antree.png)bin26111 -> 26111 bytes
-rw-r--r--assets/bgMidTree.pngbin0 -> 28537 bytes
-rw-r--r--include/ui.h1
-rw-r--r--main.cpp107
-rw-r--r--src/gameplay.cpp7
-rw-r--r--src/ui.cpp4
-rw-r--r--src/world.cpp6
8 files changed, 61 insertions, 64 deletions
diff --git a/assets/bgFarTree.png b/assets/bgFarTree.png
new file mode 100644
index 0000000..8b78cae
--- /dev/null
+++ b/assets/bgFarTree.png
Binary files differ
diff --git a/assets/antree.png b/assets/bgFrontTree.png
index 2cb54ad..2cb54ad 100644
--- a/assets/antree.png
+++ b/assets/bgFrontTree.png
Binary files differ
diff --git a/assets/bgMidTree.png b/assets/bgMidTree.png
new file mode 100644
index 0000000..35f0c14
--- /dev/null
+++ b/assets/bgMidTree.png
Binary files differ
diff --git a/include/ui.h b/include/ui.h
index 739aba0..79ca9a7 100644
--- a/include/ui.h
+++ b/include/ui.h
@@ -16,6 +16,7 @@ namespace ui { // Functions are kept in a namespace simply
extern vec2 mouse;
extern bool debug;
+ extern bool posFlag;
extern bool dialogBoxExists;
extern unsigned int fontSize;
diff --git a/main.cpp b/main.cpp
index 3af8baf..929d1c8 100644
--- a/main.cpp
+++ b/main.cpp
@@ -49,7 +49,7 @@ SDL_GLContext mainGLContext = NULL;
*
*/
-static GLuint bgImage, bgMtn, bgTreesFirst;
+static GLuint bgImage, bgMtn, bgTreesFront, bgTreesMid, bgTreesFar;
/*
* gameRunning
@@ -337,7 +337,7 @@ int main(int argc, char *argv[]){
glGetShaderiv(fragShader, GL_COMPILE_STATUS, &bufferln);
- if(bufferln == GL_TRUE){
+ if(bufferln == GL_FALSE){
std::cout << "Error compiling shader" << std::endl;
}
@@ -383,7 +383,9 @@ int main(int argc, char *argv[]){
bgImage= Texture::loadTexture("assets/bg.png");
bgMtn= Texture::loadTexture("assets/bgFarMountain.png");
- bgTreesFirst = Texture::loadTexture("assets/antree.png");
+ bgTreesFront = Texture::loadTexture("assets/bgFrontTree.png");
+ bgTreesMid = Texture::loadTexture("assets/bgMidTree.png");
+ bgTreesFar = Texture::loadTexture("assets/bgFarTree.png");
/*
* Load sprites used in the inventory menu. See src/inventory.cpp
@@ -542,8 +544,8 @@ void render(){
* If the camera will go off of the left or right of the screen we want to lock it so we can't
* see past the world render
*/
- if(player->loc.x - SCREEN_WIDTH/2 < SCREEN_WIDTH*-1.5)offset.x = ((SCREEN_WIDTH*-1.5) + SCREEN_WIDTH/2) + player->width/2;
- if(player->loc.x + SCREEN_WIDTH/2 > SCREEN_WIDTH*1.5)offset.x = ((SCREEN_WIDTH*1.5) - SCREEN_WIDTH/2) + player->width/2;
+ if(player->loc.x - SCREEN_WIDTH/2 < currentWorld->getTheWidth()*-0.5f)offset.x = ((currentWorld->getTheWidth()*-0.5f) + SCREEN_WIDTH/2) + player->width/2;
+ if(player->loc.x + SCREEN_WIDTH/2 > currentWorld->getTheWidth()*0.5f)offset.x = ((currentWorld->getTheWidth()*0.5f) - SCREEN_WIDTH/2) + player->width/2;
glMatrixMode(GL_PROJECTION); //set the matrix mode as projection so we can set the ortho size and the camera settings later on
glPushMatrix(); //push the matrix to the top of the matrix stack
glLoadIdentity(); //replace the entire matrix stack with the updated GL_PROJECTION mode
@@ -577,75 +579,58 @@ void render(){
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,bgImage);
-
glBegin(GL_QUADS);
- glTexCoord2i(0,1);glVertex2i(-SCREEN_WIDTH*2,0);
- glTexCoord2i(1,1);glVertex2i( SCREEN_WIDTH*2,0);
- glTexCoord2i(1,0);glVertex2i( SCREEN_WIDTH*2,SCREEN_HEIGHT);
- glTexCoord2i(0,0);glVertex2i(-SCREEN_WIDTH*2,SCREEN_HEIGHT);
+ glTexCoord2i(0,1);glVertex2i(-SCREEN_WIDTH*2+offset.x,0);
+ glTexCoord2i(1,1);glVertex2i( SCREEN_WIDTH*2+offset.x,0);
+ glTexCoord2i(1,0);glVertex2i( SCREEN_WIDTH*2+offset.x,SCREEN_HEIGHT);
+ glTexCoord2i(0,0);glVertex2i(-SCREEN_WIDTH*2+offset.x,SCREEN_HEIGHT);
glEnd();
int base = 40 - (int)worldGetYBase(currentWorld);
glBindTexture(GL_TEXTURE_2D, bgMtn);
-
- glColor4ub(150,150,150,220);
glBegin(GL_QUADS);
- glTexCoord2i(0,1);glVertex2i(-1920+offset.x*.85,base);
- glTexCoord2i(1,1);glVertex2i( offset.x*.85,base);
- glTexCoord2i(1,0);glVertex2i( offset.x*.85,base+1080);
- glTexCoord2i(0,0);glVertex2i(-1920+offset.x*.85,base+1080);
- glEnd();
glColor4ub(150,150,150,220);
- glBegin(GL_QUADS);
- glTexCoord2i(0,1);glVertex2i( offset.x*.85,base);
- glTexCoord2i(1,1);glVertex2i(1920+offset.x*.85,base);
- glTexCoord2i(1,0);glVertex2i(1920+offset.x*.85,base+1080);
- glTexCoord2i(0,0);glVertex2i( offset.x*.85,base+1080);
+ for(int i = 0; i <= currentWorld->getTheWidth()/1920; i++){
+ glTexCoord2i(0,1);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * i)+offset.x*.85,base);
+ glTexCoord2i(1,1);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * (i+1))+offset.x*.85,base);
+ glTexCoord2i(1,0);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * (i+1))+offset.x*.85,base+1080);
+ glTexCoord2i(0,0);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * i)+offset.x*.85,base+1080);
+ }
glEnd();
- glBindTexture(GL_TEXTURE_2D, bgTreesFirst);
- glPushMatrix();
- glColor4ub(100,100,100,240);
+ glBindTexture(GL_TEXTURE_2D, bgTreesFar);
glBegin(GL_QUADS);
- glTexCoord2i(0,1);glVertex2i(-1920+offset.x*.6,base);
- glTexCoord2i(1,1);glVertex2i( offset.x*.6,base);
- glTexCoord2i(1,0);glVertex2i( offset.x*.6,base+1080);
- glTexCoord2i(0,0);glVertex2i(-1920+offset.x*.6,base+1080);
- glEnd();
-
glColor4ub(100,100,100,240);
- glBegin(GL_QUADS);
- glTexCoord2i(0,1);glVertex2i( offset.x*.6,base);
- glTexCoord2i(1,1);glVertex2i(1920+offset.x*.6,base);
- glTexCoord2i(1,0);glVertex2i(1920+offset.x*.6,base+1080);
- glTexCoord2i(0,0);glVertex2i( offset.x*.6,base+1080);
+ for(int i = 0; i <= currentWorld->getTheWidth()/1920; i++){
+ glTexCoord2i(0,1);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * i)+offset.x*.6,base);
+ glTexCoord2i(1,1);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * (i+1))+offset.x*.6,base);
+ glTexCoord2i(1,0);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * (i+1))+offset.x*.6,base+1080);
+ glTexCoord2i(0,0);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * i)+offset.x*.6,base+1080);
+ }
glEnd();
- glPopMatrix();
- glColor4ub(150,150,150,250);
+ glBindTexture(GL_TEXTURE_2D, bgTreesMid);
glBegin(GL_QUADS);
- glTexCoord2i(0,1);glVertex2i(-1920+offset.x*.4,base);
- glTexCoord2i(1,1);glVertex2i( offset.x*.4,base);
- glTexCoord2i(1,0);glVertex2i( offset.x*.4,base+1080);
- glTexCoord2i(0,0);glVertex2i(-1920+offset.x*.4,base+1080);
- glEnd();
-
glColor4ub(150,150,150,250);
- glBegin(GL_QUADS);
- glTexCoord2i(0,1);glVertex2i( offset.x*.4,base);
- glTexCoord2i(1,1);glVertex2i(1920+offset.x*.4,base);
- glTexCoord2i(1,0);glVertex2i(1920+offset.x*.4,base+1080);
- glTexCoord2i(0,0);glVertex2i( offset.x*.4,base+1080);
+ for(int i = 0; i <= currentWorld->getTheWidth()/1920; i++){
+ glTexCoord2i(0,1);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * i)+offset.x*.4,base);
+ glTexCoord2i(1,1);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * (i+1))+offset.x*.4,base);
+ glTexCoord2i(1,0);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * (i+1))+offset.x*.4,base+1080);
+ glTexCoord2i(0,0);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * i)+offset.x*.4,base+1080);
+ }
glEnd();
- glColor4ub(255,255,255,255);
+ glBindTexture(GL_TEXTURE_2D, bgTreesFront);
glBegin(GL_QUADS);
- glTexCoord2i(0,1);glVertex2i(-960+offset.x*.25,base);
- glTexCoord2i(1,1);glVertex2i( 960+offset.x*.25,base);
- glTexCoord2i(1,0);glVertex2i( 960+offset.x*.25,base+1080);
- glTexCoord2i(0,0);glVertex2i(-960+offset.x*.25,base+1080);
+ glColor4ub(255,255,255,255);
+ for(int i = 0; i <= currentWorld->getTheWidth()/1920; i++){
+ glTexCoord2i(0,1);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * i)+offset.x*.25,base);
+ glTexCoord2i(1,1);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * (i+1))+offset.x*.25,base);
+ glTexCoord2i(1,0);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * (i+1))+offset.x*.25,base+1080);
+ glTexCoord2i(0,0);glVertex2i((currentWorld->getTheWidth()*-0.5f)+(1920 * i)+offset.x*.25,base+1080);
+ }
glEnd();
glDisable(GL_TEXTURE_2D);
@@ -686,6 +671,20 @@ void render(){
debugY, // The player's y coordinate
player->qh.current.size() // Active quest count
);
+ if(ui::posFlag){
+ glBegin(GL_LINES);
+ glColor3ub(255,0,0);
+ glVertex2i(0,0);
+ glVertex2i(0,SCREEN_HEIGHT);
+
+ glColor3ub(255,255,255);
+ glVertex2i(player->loc.x + player->width/2,0);
+ glVertex2i(player->loc.x + player->width/2,SCREEN_HEIGHT);
+
+ glVertex2i(-SCREEN_WIDTH/2+offset.x,player->loc.y);
+ glVertex2i(SCREEN_WIDTH/2+offset.x, player->loc.y);
+ glEnd();
+ }
}
diff --git a/src/gameplay.cpp b/src/gameplay.cpp
index 9e0cc99..964794f 100644
--- a/src/gameplay.cpp
+++ b/src/gameplay.cpp
@@ -35,12 +35,7 @@ void initEverything(void){
*/
World *test=new World();
- test->generate(SCREEN_WIDTH);
-
- /*
- * Add two layers, a platform, and a hole to the world.
- */
-
+ test->generate(SCREEN_WIDTH * 2);
test->addLayer(400);
test->addPlatform(150,100,100,10);
diff --git a/src/ui.cpp b/src/ui.cpp
index 5d6c2ab..91da2e9 100644
--- a/src/ui.cpp
+++ b/src/ui.cpp
@@ -19,6 +19,7 @@ static char *dialogBoxText;
namespace ui {
vec2 mouse;
bool debug=false;
+ bool posFlag=false;
bool dialogBoxExists=false;
unsigned int fontSize;
@@ -264,10 +265,11 @@ namespace ui {
if(SDL_KEY==SDLK_c){
dialogBox("","You pressed `c`, but nothing happened.");
}
- if(SDL_KEY==SDLK_LSHIFT)player->speed = 3; // Sprint
+ if(SDL_KEY==SDLK_LSHIFT)player->speed = debug?4:3; // Sprint
if(SDL_KEY==SDLK_LCTRL)player->speed = .5;
}
if(SDL_KEY==SDLK_F3)debug^=true;
+ if(SDL_KEY==SDLK_b & SDL_KEY==SDLK_F3)posFlag^=true;
break;
/*
KEYUP
diff --git a/src/world.cpp b/src/world.cpp
index 599b1ef..641dbf9 100644
--- a/src/world.cpp
+++ b/src/world.cpp
@@ -222,7 +222,7 @@ LOOP2:
* Invert shading if desired.
*/
- //shade*=-1;
+ shade*=-1;
/*
* Draw structures in the current layer if we're on the one we started at. We draw
@@ -369,7 +369,7 @@ LOOP2:
* Restore the inverted shading if it was inverted above.
*/
- //shade*=-1;
+ shade*=-1;
/*
* Draw platforms...
@@ -602,7 +602,7 @@ void World::addHole(unsigned int start,unsigned int end){
}
int World::getTheWidth(void){
- return x_start*2;
+ return -x_start*2;
}
IndoorWorld::IndoorWorld(void){