aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorClyne Sullivan <tullivan99@gmail.com>2015-09-09 21:04:08 -0400
committerClyne Sullivan <tullivan99@gmail.com>2015-09-09 21:04:08 -0400
commitb6ee2b7c296abcfff1ae7f7ac4db976dc4d6fd8e (patch)
tree7d7101a3ba3f7170faa7fe6ede4e378f84f5e18c /src
parent9e79696c65a4f5a62f504ba855ee0ba8f036b768 (diff)
world gen
Diffstat (limited to 'src')
-rw-r--r--src/World.cpp57
-rw-r--r--src/main.cpp8
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