#include #define getWidth() ((lineCount-GEN_INC)*HLINE) #define GEN_INC 10 #define GRASS_HEIGHT 4 void safeSetColor(int r,int g,int b){ if(r>255)r=255; if(g>255)g=255; if(b>255)b=255; if(r<0)r=0; if(g<0)g=0; if(b<0)b=0; glColor3ub(r,g,b); } World::World(unsigned int width){ unsigned int i; float inc; lineCount=width+GEN_INC; line=(struct line_t *)calloc(lineCount,sizeof(struct line_t)); // allocate space for the array of lines line[0].y=80; for(i=GEN_INC;i110)line[i].y=110; } for(i=0;idraw(vec); } v_offset=(vec->x-x_start)/HLINE; i=v_offset-SCREEN_WIDTH/(yoff/25); if(i<0)i=0; ie=v_offset+SCREEN_WIDTH/(yoff/25); if(ie>lineCount)ie=lineCount; glBegin(GL_QUADS); for(i=i;ix+width/2-x_start)/HLINE; if(v->y<=line[i].y){ vel->y=0; v->y=line[i].y+HLINE/2; }else{ vel->y-=.05; } // Horizontal checks if(v->xx=0; v->x=x_start+HLINE/2; }else if(v->x+width+HLINE>x_start+getWidth()){ vel->x=0; v->x=x_start+getWidth()-width-HLINE; } } void World::addLayer(unsigned int width){ if(behind){ behind->addLayer(width); return; } behind=new World(width); behind->infront=this; }