#include #include int main(int args, char* argc[]) { begin: // before SDL init const int WinSize{ 3000 }; // SDL init SDL_Init(SDL_INIT_EVERYTHING); // main window variables SDL_Window* win{ SDL_CreateWindow("Undecided project", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WinSize / 4, WinSize / 4, SDL_WINDOW_SHOWN | SDL_WINDOW_INPUT_FOCUS) }; SDL_Renderer* ren{ SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC) }; // other variables SDL_Event e; bool q{ false }, restart{ false }; SDL_Rect Wall{ 100, 100, 400, 400 }; // pre loop operations SDL_RenderSetLogicalSize(ren, WinSize, WinSize); // main loop while (!q) { SDL_SetRenderDrawColor(ren, 0, 0, 0, 255); SDL_RenderClear(ren); SDL_SetRenderDrawColor(ren, 255, 255, 255, 255); SDL_RenderDrawRect(ren, &Wall); SDL_RenderPresent(ren); while (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) q = true; else if (e.type == SDL_KEYDOWN) { switch (e.key.keysym.sym) { case SDLK_w: Wall.x -= 1; Wall.y -= 1; Wall.w += 2; Wall.h += 2; break; case SDLK_s: Wall.x += 1; Wall.y += 1; Wall.w -= 2; Wall.h -= 2; break; case SDLK_p: restart = true; q = true; break; case SDLK_ESCAPE: q = true; break; default: std::cout << "undefined input!\n"; break; } } } } // exit code SDL_DestroyRenderer(ren); SDL_DestroyWindow(win); SDL_Quit(); if (restart) goto begin; return 0; }