diff options
author | Clyne Sullivan <tullivan99@gmail.com> | 2015-10-29 09:21:36 -0400 |
---|---|---|
committer | Clyne Sullivan <tullivan99@gmail.com> | 2015-10-29 09:21:36 -0400 |
commit | 9133b5b379f565ca9f268b63864155051c464cb1 (patch) | |
tree | deca5a99dfeaa16b03839477683e2e142fd51066 | |
parent | df20af833773ee67d78b3f2e8ab3a0a1753e523a (diff) | |
parent | ffd36d33bf65fe0dc745aeb632dcf73951df6bbf (diff) |
gotta go fast
-rw-r--r-- | assets/bgFarTree.png | bin | 0 -> 38790 bytes | |||
-rw-r--r-- | assets/bgFrontTree.png (renamed from assets/antree.png) | bin | 26111 -> 26111 bytes | |||
-rw-r--r-- | assets/bgMidTree.png | bin | 0 -> 28537 bytes | |||
-rw-r--r-- | include/ui.h | 1 | ||||
-rw-r--r-- | main.cpp | 107 | ||||
-rw-r--r-- | src/gameplay.cpp | 7 | ||||
-rw-r--r-- | src/ui.cpp | 4 | ||||
-rw-r--r-- | src/world.cpp | 6 |
8 files changed, 61 insertions, 64 deletions
diff --git a/assets/bgFarTree.png b/assets/bgFarTree.png Binary files differnew file mode 100644 index 0000000..8b78cae --- /dev/null +++ b/assets/bgFarTree.png diff --git a/assets/antree.png b/assets/bgFrontTree.png Binary files differindex 2cb54ad..2cb54ad 100644 --- a/assets/antree.png +++ b/assets/bgFrontTree.png diff --git a/assets/bgMidTree.png b/assets/bgMidTree.png Binary files differnew file mode 100644 index 0000000..35f0c14 --- /dev/null +++ b/assets/bgMidTree.png 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; @@ -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); @@ -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){ |