//main file #include #include #include"player.h" #include"block.h" const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; SDL_Window* gWindow = NULL; SDL_Renderer* gRenderer = NULL; //12 sz of height and 16 of width const int sz = SCREEN_WIDTH/16; void init(); bool loadMedia(); void close(); void gameLoop(); int check(SDL_Rect rectA, SDL_Rect rectB); Player posweg; Block ground; bool loadMedia(){ bool success = true; return success; } void init(){ SDL_Init(SDL_INIT_VIDEO); //IMG_Init(IMG_INIT_JPG); gWindow = SDL_CreateWindow("Plataform Test!",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,SCREEN_WIDTH,SCREEN_HEIGHT,SDL_WINDOW_SHOWN); gRenderer = SDL_CreateRenderer(gWindow,-1,SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); SDL_SetRenderDrawColor(gRenderer,0xFF,0xFF,0xFF,0xFF); } void close(){ SDL_DestroyRenderer(gRenderer); SDL_DestroyWindow(gWindow); gWindow = NULL; gRenderer = NULL; //IMG_Quit(); SDL_Quit(); } void gameLoop(){ SDL_SetRenderDrawColor(gRenderer,0,0,0,0xFF); SDL_RenderClear(gRenderer); Block wallA; Block wallB; Block wallC; wallA.print(8*sz,SCREEN_HEIGHT-sz*5,sz*2,sz*2,gRenderer); wallB.print(4*sz,SCREEN_HEIGHT-sz*3,sz,sz*2,gRenderer); wallC.print(6*sz,SCREEN_HEIGHT-sz*3,sz,sz*2,gRenderer); ground.print(0,SCREEN_HEIGHT-sz,SCREEN_WIDTH,sz,gRenderer); posweg.print(); posweg.check(wallA.getRectangle()); posweg.check(wallB.getRectangle()); posweg.check(wallC.getRectangle()); posweg.check(ground.getRectangle()); SDL_RenderPresent(gRenderer); } int main(int argc, char* args[]){ init(); loadMedia(); bool quit = false; SDL_Event e; posweg.init(100,100,sz,sz,&gRenderer); while(!quit){ while(SDL_PollEvent(&e)!=0){ if(e.type == SDL_QUIT){ quit = true; } } gameLoop(); } close(); return 0; } int check(SDL_Rect rectA, SDL_Rect rectB){ int collision = 0; int aX = rectA.x; int aY = rectA.y; int a2X = rectA.x + rectA.w; int a2Y = rectA.y + rectA.h; int bX = rectB.x; int bY = rectB.y; int b2X = rectB.x + rectB.w; int b2Y = rectB.y + rectB.h; if(aX > bX and aX < b2X){ if(aY > bY and aY < b2Y) collision += 1; if(a2Y > bY and a2Y < b2Y) collision += 2; } if(a2X > bX and a2X < b2X){ if(aY > bY and aY < b2Y) collision += 4; if(a2Y > bY and a2Y < b2Y) collision += 8; } //std::cout<