#include #include class instructions { public: void apply(int srcX,int srcY,int x,int y,int w,int h,SDL_Surface *source,SDL_Surface *destination) { SDL_Rect set; set.x=x; set.y=y; set.w=w; set.h=h; SDL_Rect src; src.x=srcX; src.y=srcY; src.w=w; src.h=h; SDL_BlitSurface(source,&src,destination,&set); } void give(int x,int y,int w,int h,SDL_Rect &fake) { fake.x=x; fake.y=y; fake.w=w; fake.h=h; } bool CheckCollision(float Ax,float Ay,float Aw,float Ah, float Bx,float By,float Bw,float Bh) { if(Ay+AhBy+Bh) return false; else if(Ax+AwBx+Bw) return false; return true; } int showmenu(SDL_Surface *screen,TTF_Font *font) { int x,y; const int NUMMENU=2; const char *labels[NUMMENU]={"Continue","Exit"}; SDL_Surface *menus[NUMMENU]; bool selected[NUMMENU]={0,0}; SDL_Color color[2]={{255,255,255},{255,0,0}}; menus[0]=TTF_RenderText_Solid(font,labels[0],color[0]); menus[1]=TTF_RenderText_Solid(font,labels[1],color[0]); SDL_Rect pos[NUMMENU]; pos[0].x=screen->clip_rect.w/2 - menus[0]->clip_rect.w/2; pos[0].y=screen->clip_rect.h/2 - menus[0]->clip_rect.h; pos[1].x=screen->clip_rect.w/2 - menus[0]->clip_rect.w/2; pos[1].y=screen->clip_rect.h/2 + menus[0]->clip_rect.h; SDL_FillRect(screen,&screen->clip_rect,SDL_MapRGB(screen->format,0x200,0x200,0x255)); SDL_Event event; while(true) { while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: for(int i=0;i=pos[i].x && x<=pos[i].x+pos[i].w && y>=pos[i].y && y<=pos[i].y+pos[i].h) { if(!selected[i]) { selected[i]=1; SDL_FreeSurface(menus[i]); menus[i]=TTF_RenderText_Solid(font,labels[i],color[1]); } } else { if(selected[i]) { selected[i]=0; SDL_FreeSurface(menus[i]); menus[i]=TTF_RenderText_Solid(font,labels[i],color[0]); } } } break; case SDL_MOUSEBUTTONDOWN: x=event.button.x; y=event.button.y; for(int i=0;i=pos[i].x && x<=pos[i].x+pos[i].w && y>=pos[i].y && y<=pos[i].y+pos[i].h) { for(int j=0;jclip_rect.w/2 - menus[0]->clip_rect.w/2; pos[0].y=screen->clip_rect.h/3 - menus[0]->clip_rect.h; pos[1].x=screen->clip_rect.w/2 - menus[0]->clip_rect.w/2; pos[1].y=screen->clip_rect.h/3 + menus[0]->clip_rect.h; pos[2].x=screen->clip_rect.w/2 - menus[0]->clip_rect.w/2; pos[2].y=screen->clip_rect.h/2 + menus[0]->clip_rect.h; SDL_FillRect(screen,&screen->clip_rect,SDL_MapRGB(screen->format,0x200,0x200,0x255)); SDL_Event event; while(true) { while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: for(int i=0;i=pos[i].x && x<=pos[i].x+pos[i].w && y>=pos[i].y && y<=pos[i].y+pos[i].h) { if(!selected[i]) { selected[i]=1; SDL_FreeSurface(menus[i]); menus[i]=TTF_RenderText_Solid(font,labels[i],color[1]); } } else { if(selected[i]) { selected[i]=0; SDL_FreeSurface(menus[i]); menus[i]=TTF_RenderText_Solid(font,labels[i],color[0]); } } } break; case SDL_MOUSEBUTTONDOWN: x=event.button.x; y=event.button.y; for(int i=0;i=pos[i].x && x<=pos[i].x+pos[i].w && y>=pos[i].y && y<=pos[i].y+pos[i].h) { for(int j=0;jclip_rect.w/2 - menus[0]->clip_rect.w/2; pos[0].y=screen->clip_rect.h/1.5 + menus[0]->clip_rect.h; pos[1].x=screen->clip_rect.w/6 - menus[0]->clip_rect.w; pos[1].y=screen->clip_rect.h/4 - menus[0]->clip_rect.h; pos[2].x=screen->clip_rect.w/6 - menus[0]->clip_rect.w; pos[2].y=screen->clip_rect.h/3 - menus[0]->clip_rect.h; pos[3].x=screen->clip_rect.w/4 - menus[0]->clip_rect.w; pos[3].y=screen->clip_rect.h/2.6 - menus[0]->clip_rect.h; pos[4].x=screen->clip_rect.w/6 - menus[0]->clip_rect.w; pos[4].y=screen->clip_rect.h/2 - menus[0]->clip_rect.h; SDL_FillRect(screen,&screen->clip_rect,SDL_MapRGB(screen->format,0x200,0x200,0x255)); SDL_Event event; while(true) { while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: for(int i=0;i=pos[0].x && x<=pos[0].x+pos[0].w && y>=pos[0].y && y<=pos[0].y+pos[0].h) { if(!selected[0]) { selected[0]=1; SDL_FreeSurface(menus[0]); menus[0]=TTF_RenderText_Solid(font,labels[0],color[1]); } } else { if(selected[0]) { selected[0]=0; SDL_FreeSurface(menus[0]); menus[0]=TTF_RenderText_Solid(font,labels[0],color[0]); } } break; case SDL_MOUSEBUTTONDOWN: x=event.button.x; y=event.button.y; if(x>=pos[0].x && x<=pos[0].x+pos[0].w && y>=pos[0].y && y<=pos[0].y+pos[0].h) { SDL_FreeSurface(menus[0]); return 0; } break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE: SDL_FreeSurface(menus[0]); return 0; } } } for(int i=0;iclip_rect.w/2 - menus[0]->clip_rect.w/2; pos[0].y=screen->clip_rect.h/1.5 + menus[0]->clip_rect.h; pos[1].x=screen->clip_rect.w/2 - menus[0]->clip_rect.w; pos[1].y=screen->clip_rect.h/4 - menus[0]->clip_rect.h; SDL_FillRect(screen,&screen->clip_rect,SDL_MapRGB(screen->format,0x200,0x200,0x255)); SDL_Event event; while(true) { while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: for(int i=0;i=pos[0].x && x<=pos[0].x+pos[0].w && y>=pos[0].y && y<=pos[0].y+pos[0].h) { if(!selected[0]) { selected[0]=1; SDL_FreeSurface(menus[0]); menus[0]=TTF_RenderText_Solid(font,labels[0],color[1]); } } else { if(selected[0]) { selected[0]=0; SDL_FreeSurface(menus[0]); menus[0]=TTF_RenderText_Solid(font,labels[0],color[0]); } } break; case SDL_MOUSEBUTTONDOWN: x=event.button.x; y=event.button.y; if(x>=pos[0].x && x<=pos[0].x+pos[0].w && y>=pos[0].y && y<=pos[0].y+pos[0].h) { SDL_FreeSurface(menus[0]); return 0; } break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE: SDL_FreeSurface(menus[0]); return 0; } } } for(int i=0;iclip_rect.w/2 - menus[0]->clip_rect.w/2; pos[0].y=screen->clip_rect.h/1.5 + menus[0]->clip_rect.h; pos[1].x=screen->clip_rect.w/2 - menus[0]->clip_rect.w; pos[1].y=screen->clip_rect.h/4 - menus[0]->clip_rect.h; SDL_FillRect(screen,&screen->clip_rect,SDL_MapRGB(screen->format,0x200,0x200,0x255)); SDL_Event event; while(true) { while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: for(int i=0;i=pos[0].x && x<=pos[0].x+pos[0].w && y>=pos[0].y && y<=pos[0].y+pos[0].h) { if(!selected[0]) { selected[0]=1; SDL_FreeSurface(menus[0]); menus[0]=TTF_RenderText_Solid(font,labels[0],color[1]); } } else { if(selected[0]) { selected[0]=0; SDL_FreeSurface(menus[0]); menus[0]=TTF_RenderText_Solid(font,labels[0],color[0]); } } break; case SDL_MOUSEBUTTONDOWN: x=event.button.x; y=event.button.y; if(x>=pos[0].x && x<=pos[0].x+pos[0].w && y>=pos[0].y && y<=pos[0].y+pos[0].h) { SDL_FreeSurface(menus[0]); return 0; } break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE: SDL_FreeSurface(menus[0]); return 0; } } } for(int i=0;iformat,0xff,0xff,0xff)); Uint32 backround=SDL_MapRGB(screen->format,0x00,0xff,0xff); Uint32 color=SDL_MapRGB(screen->format,0x00,0x00,0xff); Uint32 color1=SDL_MapRGB(screen->format,0x100,0x255,0x100); SDL_Rect obstacle,obstacle1,obstacle2,obstacle3,obstacle4,obstacle5,obstacle6,obstacle7,bad; instr.give(150,960,80,40,obstacle); instr.give(370,960,130,40,obstacle1); instr.give(530,960,130,40,obstacle2); instr.give(460,920,110,40,obstacle3); instr.give(800,960,190,40,obstacle4); instr.give(865,920,60,40,obstacle5); instr.give(1110,690,100,40,obstacle6); instr.give(1140,400,360,40,obstacle7); instr.give(250,960,40,40,bad); const int speed=6; SDL_Rect camera; instr.give(0,0,1000,1000,camera); bool up=false; bool down=true; bool right=false; bool left=false; bool changeColor=false; bool makePause=false; int k; k=instr.showmenu1(screen,font); if(k==1) { int r; r=instr.rules(screen,font1); if(r==1) run=false; } else if(k==2) run=false; while(run) { if(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: run=false; break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_DOWN: changeColor=true; break; case SDLK_UP: up=true; down=false; break; case SDLK_RIGHT: right=true; break; case SDLK_LEFT: left=true; break; case SDLK_ESCAPE: int i; i=instr.showmenu(screen,font); if(i==1) run=false; break; } break; case SDL_KEYUP: switch(event.key.keysym.sym) { case SDLK_DOWN: changeColor=false; break; case SDLK_UP: up=false; down=true; break; case SDLK_RIGHT: right=false; break; case SDLK_LEFT: left=false; break; } break; case SDL_MOUSEBUTTONDOWN: makePause=true; break; } } /////////////////////////////////// /////////////////////////////////// /////////////////////////////////// /////////////////////////////////// /////////////////////////////////// if(makePause==true) { int x,y; x=event.motion.x; y=event.motion.y; if(x>900 && x<900+pause->w && y>2 && 2+2+pause->h) { int i; i=instr.showmenu(screen,font); if(i==1) run=false; } } makePause=false; if(changeColor==true) { backround=SDL_MapRGB(screen->format,0x80,0x80,0x20); } if(up==true && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle.x,obstacle.y,obstacle.w,obstacle.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle1.x,obstacle1.y,obstacle1.w,obstacle1.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle2.x,obstacle2.y,obstacle2.w,obstacle2.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle3.x,obstacle3.y,obstacle3.w,obstacle3.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle4.x,obstacle4.y,obstacle4.w,obstacle4.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle5.x,obstacle5.y,obstacle5.w,obstacle5.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle6.x,obstacle6.y,obstacle6.w,obstacle6.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle7.x,obstacle7.y,obstacle7.w,obstacle7.h)==true)) { dstY1-=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle.x,obstacle.y,obstacle.w,obstacle.h)==true) dstY1+=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle1.x,obstacle1.y,obstacle1.w,obstacle1.h)==true) dstY1+=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle2.x,obstacle2.y,obstacle2.w,obstacle2.h)==true) dstY1+=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle3.x,obstacle3.y,obstacle3.w,obstacle3.h)==true) dstY1+=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle4.x,obstacle4.y,obstacle4.w,obstacle4.h)==true) dstY1+=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle5.x,obstacle5.y,obstacle5.w,obstacle5.h)==true) dstY1+=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle6.x,obstacle6.y,obstacle6.w,obstacle6.h)==true) dstY1+=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle7.x,obstacle7.y,obstacle7.w,obstacle7.h)==true) dstY1+=2; } if(down==true && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle.x,obstacle.y,obstacle.w,obstacle.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle1.x,obstacle1.y,obstacle1.w,obstacle1.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle2.x,obstacle2.y,obstacle2.w,obstacle2.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle3.x,obstacle3.y,obstacle3.w,obstacle3.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle4.x,obstacle4.y,obstacle4.w,obstacle4.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle5.x,obstacle5.y,obstacle5.w,obstacle5.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle6.x,obstacle6.y,obstacle6.w,obstacle6.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle7.x,obstacle7.y,obstacle7.w,obstacle7.h)==true)) { dstY1+=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle.x,obstacle.y,obstacle.w,obstacle.h)==true) dstY1-=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle1.x,obstacle1.y,obstacle1.w,obstacle1.h)==true) dstY1-=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle2.x,obstacle2.y,obstacle2.w,obstacle2.h)==true) dstY1-=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle3.x,obstacle3.y,obstacle3.w,obstacle3.h)==true) dstY1-=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle4.x,obstacle4.y,obstacle4.w,obstacle4.h)==true) dstY1-=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle5.x,obstacle5.y,obstacle5.w,obstacle5.h)==true) dstY1-=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle6.x,obstacle6.y,obstacle6.w,obstacle6.h)==true) dstY1-=2; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle7.x,obstacle7.y,obstacle7.w,obstacle7.h)==true) dstY1-=2; } if(right==true && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle.x,obstacle.y,obstacle.w,obstacle.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle1.x,obstacle1.y,obstacle1.w,obstacle1.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle2.x,obstacle2.y,obstacle2.w,obstacle2.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle3.x,obstacle3.y,obstacle3.w,obstacle3.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle4.x,obstacle4.y,obstacle4.w,obstacle4.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle5.x,obstacle5.y,obstacle5.w,obstacle5.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle6.x,obstacle6.y,obstacle6.w,obstacle6.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle7.x,obstacle7.y,obstacle7.w,obstacle7.h)==true)) { dstX1++; camera.x+=speed; if(camera.x>=5550) camera.x=0; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle.x,obstacle.y,obstacle.w,obstacle.h)==true) dstX1-=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle1.x,obstacle1.y,obstacle1.w,obstacle1.h)==true) dstX1-=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle2.x,obstacle2.y,obstacle2.w,obstacle2.h)==true) dstX1-=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle3.x,obstacle3.y,obstacle3.w,obstacle3.h)==true) dstX1-=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle4.x,obstacle4.y,obstacle4.w,obstacle4.h)==true) dstX1-=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle5.x,obstacle5.y,obstacle5.w,obstacle5.h)==true) dstX1-=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle6.x,obstacle6.y,obstacle6.w,obstacle6.h)==true) dstX1-=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle7.x,obstacle7.y,obstacle7.w,obstacle7.h)==true) dstX1-=1; } if(left==true && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle.x,obstacle.y,obstacle.w,obstacle.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle1.x,obstacle1.y,obstacle1.w,obstacle1.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle2.x,obstacle2.y,obstacle2.w,obstacle2.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle3.x,obstacle3.y,obstacle3.w,obstacle3.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle4.x,obstacle4.y,obstacle4.w,obstacle4.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle5.x,obstacle5.y,obstacle5.w,obstacle5.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle6.x,obstacle6.y,obstacle6.w,obstacle6.h)==true) && !(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle7.x,obstacle7.y,obstacle7.w,obstacle7.h)==true)) { dstX1--; camera.x-=speed; if(camera.x<=0) camera.x=5550; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle.x,obstacle.y,obstacle.w,obstacle.h)==true) dstX1+=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle1.x,obstacle1.y,obstacle1.w,obstacle1.h)==true) dstX1+=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle2.x,obstacle2.y,obstacle2.w,obstacle2.h)==true) dstX1+=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle3.x,obstacle3.y,obstacle3.w,obstacle3.h)==true) dstX1+=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle4.x,obstacle4.y,obstacle4.w,obstacle4.h)==true) dstX1+=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle5.x,obstacle5.y,obstacle5.w,obstacle5.h)==true) dstX1+=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle6.x,obstacle6.y,obstacle6.w,obstacle6.h)==true) dstX1+=1; if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle7.x,obstacle7.y,obstacle7.w,obstacle7.h)==true) dstX1+=1; } ///////////////////////// ///////////////////////// if(dstX1<0) { dstX1=0; } if(dstY1<0) { dstY1=0; } ///////////////////////// ///////////////////////// if(dstX1+heroe->w > ScreenWidth) { dstX1=ScreenWidth-heroe->w; } if(dstY1+heroe->h > ScreenHeight) { dstY1=ScreenHeight-heroe->h; } if(up==true && (dstY1+heroe->h < 900) ) { down=true; up=false; } ///////////////////////////////// ///////////////////////////////// if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,bad.x,bad.y,bad.w,bad.h)==true) { int l; l=instr.loose(screen,font2); if(l==0) run=false; } ///////////////////////////////// ///////////////////////////////// if(instr.CheckCollision(dstX1,dstY1,heroe->w,heroe->h,obstacle7.x-5,obstacle7.y-5,obstacle7.w-5,obstacle7.h-5)==true) { int w; w=instr.win(screen,font2); if(w==0) run=false; } ////////////// SDL_FillRect(screen,&screen->clip_rect,backround); SDL_BlitSurface(imagebackground,&camera,screen,NULL); SDL_FillRect(screen,&obstacle,color); SDL_FillRect(screen,&obstacle1,color); SDL_FillRect(screen,&obstacle2,color); SDL_FillRect(screen,&obstacle3,color); SDL_FillRect(screen,&obstacle4,color); SDL_FillRect(screen,&obstacle5,color); SDL_FillRect(screen,&obstacle6,color); SDL_FillRect(screen,&obstacle7,color); SDL_FillRect(screen,&bad,color1); instr.apply(srcX1, srcY1, 900, 2, pause->w,pause->h, pause, screen); instr.apply(srcX1, srcY1, dstX1, dstY1, heroe->w,heroe->h, heroe, screen); SDL_BlitSurface(text,NULL,screen,NULL); SDL_Flip(screen); } SDL_FreeSurface(text); TTF_CloseFont(font); TTF_Quit(); SDL_Quit(); return 0; }