#include World::World(void){ line=NULL; lineCount=0; toLeft=toRight=NULL; } World::World(const float width,World *l,World *r){ unsigned int i; double f; lineCount=width/HLINE+1; if((line=(struct line_t *)calloc(lineCount,sizeof(struct line_t)))==NULL){ std::cout<<"Failed to allocate memory!"<toRight){ std::cout<<"There's already a world to the left!"<toRight=this; } } if(toRight){ if(toRight->toLeft){ std::cout<<"There's already a world to the right!"<toLeft=this; } } line[0].start=(rand()%100)/100.0f-0.8f; // lazy if(line[0].start>-0.5f)line[0].start=-0.7f; for(i=10;iyx>(HLINE*i)-1&&v->x<(HLINE*i)-1+HLINE){ v->x=(HLINE*i)-1+HLINE; }else if(v->x+width>(HLINE*i)-1&&v->x+width<(HLINE*i)-1+HLINE){ v->x=(HLINE*i)-1-width; }else{ v->y=line[i].start; } }else if(v->y>line[i].start+HLINE/2){ v->y-=HLINE/4; } } } float World::getWidth(void){ return (lineCount-1)*HLINE; }