diff options
author | Clyne Sullivan <tullivan99@gmail.com> | 2015-09-09 21:04:08 -0400 |
---|---|---|
committer | Clyne Sullivan <tullivan99@gmail.com> | 2015-09-09 21:04:08 -0400 |
commit | b6ee2b7c296abcfff1ae7f7ac4db976dc4d6fd8e (patch) | |
tree | 7d7101a3ba3f7170faa7fe6ede4e378f84f5e18c /src | |
parent | 9e79696c65a4f5a62f504ba855ee0ba8f036b768 (diff) |
world gen
Diffstat (limited to 'src')
-rw-r--r-- | src/World.cpp | 57 | ||||
-rw-r--r-- | src/main.cpp | 8 |
2 files changed, 28 insertions, 37 deletions
diff --git a/src/World.cpp b/src/World.cpp index feeeb1f..3d8cfb7 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -1,38 +1,31 @@ #include <World.h> -World::World(const char *l1,const char *l2,const char *l3,const char *bg){ - unsigned char i=0; - SDL_Surface *l; - const char *f[4]={l1,l2,l3,bg}; - memset(layer,0,sizeof(struct layer_t)*4); - for(;i<4;i++){ - l=IMG_Load(f[i]); - if(l!=NULL){ - glGenTextures(1,&layer[i].tex); - glBindTexture(GL_TEXTURE_2D,layer[i].tex); - glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); - glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); - glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE); - glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE); - glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,l->w,l->h,0,GL_RGB,GL_UNSIGNED_BYTE,l->pixels); - SDL_FreeSurface(l); - } +World::World(float width){ + unsigned int i; + lineCount=width/HLINE; + if((line=(struct line_t *)calloc(lineCount,sizeof(struct line_t)))==NULL){ + std::cout<<"Failed to allocate memory!"<<std::endl; + abort(); + } + line[0].start=(rand()%100)/100.0f-1; // lazy + for(i=1;i<lineCount;i++){ + line[i].start=line[i-1].start+(float)((rand()%20)-10)/1000.0f; } } void World::draw(void){ - int i; - float x; - glEnable(GL_TEXTURE_2D); - for(i=2;i>=0;i--){ - glBindTexture(GL_TEXTURE_2D,layer[i].tex); - glBegin(GL_QUADS); - for(x=-1;x<=1;x+=(TEX_SIZE/(float)(i+1))){ - glTexCoord2d(1,1);glVertex2f(x ,LAYER0_Y-TEX_SIZE+(i*.2)); - glTexCoord2d(0,1);glVertex2f(x+TEX_SIZE,LAYER0_Y-TEX_SIZE+(i*.2)); - glTexCoord2d(0,0);glVertex2f(x+TEX_SIZE,LAYER0_Y +(i*.2)); - glTexCoord2d(1,0);glVertex2f(x ,LAYER0_Y +(i*.2)); - } - glEnd(); - } - glDisable(GL_TEXTURE_2D); + unsigned int i; + glBegin(GL_QUADS); + for(i=0;i<lineCount;i++){ + glColor3ub(0,255,0); + glVertex2f((HLINE*i)-1 ,line[i].start); + glVertex2f((HLINE*i)-1+HLINE,line[i].start); + glVertex2f((HLINE*i)-1+HLINE,line[i].start-0.02); + glVertex2f((HLINE*i)-1 ,line[i].start-0.02); + glColor3ub(150,100,50); + glVertex2f((HLINE*i)-1 ,line[i].start-0.02); + glVertex2f((HLINE*i)-1+HLINE,line[i].start-0.02); + glVertex2f((HLINE*i)-1+HLINE,-1); + glVertex2f((HLINE*i)-1 ,-1); + } + glEnd(); } diff --git a/src/main.cpp b/src/main.cpp index 61920e7..cb93ff4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,4 +1,5 @@ #include <common.h> +#include <ctime> SDL_Window *window = NULL; SDL_Surface *renderSurface = NULL; @@ -39,7 +40,7 @@ int main(int argc,char **argv){ std::cout << "SDL was not able to initialize! Error: " << SDL_GetError() << std::endl; return -1; } - + srand(time(NULL)); glClearColor(.3,.5,.8,0); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); @@ -48,10 +49,7 @@ int main(int argc,char **argv){ **** GAMELOOP **** **************************/ - World *w=new World("res/dirt.jpg", - "res/dirt.jpg", - "res/dirt.jpg", - "res/dirt.jpg"); + World *w=new World(2); while(gameRunning){ ui.handleEvents(); // Handle events |