рдПрд╕рдбреАрдПрд▓ 2: рдореВрд▓ рдмрд╛рддреЗрдВ

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдХрд┐ рдкрд░ SDL2.x рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд┐рд╕реА рднреА рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЦреЛрдЬрдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИ, рд╣рдо RuNet рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдХреБрдЫ рд▓реЗрдЦ рдорд┐рд▓реЗ, рдЬреЛ рдореЗрд░реЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдПрдХ рддрд┐рд╣рд╛рдИ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рднреА рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддреЗ рдереЗред
рдПрд╕рдбреАрдПрд▓ 2.x 1.x рд╕реЗ рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрддреАрдд рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдерд╛, рддреЛ рдЕрдм рдЖрдк рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕рдордЭрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЙрдард╛рддреЗ рд╣реИрдВред

рдЖрдЬ рд╣рдо рдПрдХ рд╕рд░рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ WASD рдФрд░ рддреАрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдФрд░ рдПрдХ рдЬрд╝реВрдорд┐рдд рд╕реНрдкреНрд░рд╛рдЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред + рд╣рдо рдПрд╕рдбреАрдПрд▓ рдореЗрдВ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдиреЗрдВрдЧреЗред

рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП :

рдпрд╣ рд╕рдм рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рд╕реЗ рд╣реА рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

рдПрд╕рдбреАрдПрд▓ рдЖрд░рдВрднреАрдХрд░рдг


рдХрдХреНрд╖рд╛ SDL_DisplayMode рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ ред
рдЕрдЧрд░ рд╣рдо рдлреБрд▓-рд╕реНрдХреНрд░реАрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ SDL рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

SDL_DisplayMode displayMode; 


рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЦреБрдж SDL рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
 if (SDL_Init(SDL_INIT_EVERYTHING) != 0){ std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl; return 1; } 


SDL_INIT_EVERYTHING рдзреНрд╡рдЬ рд╕рднреА SDL SDL_INIT_EVERYTHING рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдмрд╕ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдХреА рдкрд░ рдЖрдк рдЙрдирдХреА рдкреВрд░реА рд╕реВрдЪреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рд╣рдореЗрдВ рдореЙрдирд┐рдЯрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ SDL_GetDesktopDisplayMode(*int displayIndex, SDL_DisplayMode* mode) рдЪрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ 0 рд╡рд╛рдкрд╕ рдЖрдПрдЧрд╛ рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рдФрд░ SDL_GetDesktopDisplayMode(*int displayIndex, SDL_DisplayMode* mode) рд╕рд╛рде рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА SDL_GetDesktopDisplayMode(*int displayIndex, SDL_DisplayMode* mode) ред
рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рддрд░реНрдХ рдореЗрдВ 0 рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдореБрдЦреНрдп рдореЙрдирд┐рдЯрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рд╣рдо displayMode рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рднреА рдкреНрд░рд╛рдкреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
  int request = SDL_GetDesktopDisplayMode(0,&displayMode); 


рдпрд╣ рд╣рдорд╛рд░реА рдЦрд┐рдбрд╝рдХреА рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ!
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ, SDL_Window рд╡рд░реНрдЧ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдмрдирд╛рдПрдВ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ
 SDL_Window* SDL_CreateWindow(const char* title, int x, int y, int w, int h, Uint32 flags) 


рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рдХреНрдпрд╛ рд╣реИред

SDL_WINDOW_SHOWN - рд╡рд┐рдВрдбреЛ рдХреЛ рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдирд┐рдореНрди рдХреЛрдб рдорд┐рд▓рддрд╛ рд╣реИ:
 SDL_Window *win = SDL_CreateWindow("Hello World!", 0, 0, displayMode.w, displayMode.h, SDL_WINDOW_SHOWN); if (win == nullptr){ std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl; return 1; } 


рдЕрдм рд╣рдореЗрдВ рдПрдХ рд░реЗрдВрдбрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 SDL_Renderer* SDL_CreateRenderer(SDL_Window* window, int index, Uint32 flags) 


рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:
 SDL_Renderer *ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); if (ren == nullptr){ std::cout << "SDL_CreateRenderer Error: " << SDL_GetError() << std::endl; return 1; } 

рдЕрдм рдПрд╕рдбреАрдПрд▓ рд╣рдорд╛рд░реЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ!

рд╕реНрдХреНрд░реАрди рдЖрдЙрдЯрдкреБрдЯ


рдпрд╣ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рд╡рд░реНрдЧ SDL_Rect 2 рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЪреМрдбрд╝рд╛рдИ, рдКрдВрдЪрд╛рдИ рдФрд░ рд╕реНрдерд┐рддрд┐ рдЬреИрд╕реЗ рд╣рдорд╛рд░реЗ рдмрдирд╛рд╡рдЯ рдХреЗ рднреМрддрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрдВрдЧреЗред
 SDL_Rect player_RECT; player_RECT.x = 0; //    player_RECT.y = 0; //   Y player_RECT.w = 333; //  player_RECT.h = 227; //  SDL_Rect background_RECT; background_RECT.x = 0; background_RECT.y = 0; background_RECT.w = displayMode.w; background_RECT.h = displayMode.h; 

рдФрд░ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ, рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рдЪрд░рд┐рддреНрд░ рдкрд░ рдЬрд╝реВрдо рдХрд░ рд╕рдХреЗрдВ:
 const int player_WIGHT = 333; //   const int player_HEIGH = 227; //   double TESTtexture_SCALE = 1.0; //   


рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдмрдирд╛рд╡рдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ рд╣реИред
рдореИрдВ 2 рддрд░реАрдХреЗ рджрд┐рдЦрд╛рдКрдВрдЧрд╛:

рд▓реЗрдХрд┐рди рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫреЛрдЯрд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░!
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЛ рд▓реЛрдЧ SDL1.x рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рдереЗ, рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдм рднреА рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ SDL рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдЪрд╛рдирдХ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ) рдХреЛрдИ рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИред
SDL рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ 4 рдореБрдЦреНрдп рд╡рд░реНрдЧ / рд╕рдВрд░рдЪрдирд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: SDL_Texture , SDL_Rect , SDL_Render , SDL_Render ред

рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдВрддрд┐рдо 2 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рд╣реИ, рдЖрдЗрдП рдЕрдм рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдХреА рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рд░реЗрдВрдбрд░ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 SDL_RenderCopy(SDL_Renderer* renderer, SDL_Texture* texture, const SDL_Rect* srcrect, const SDL_Rect* dstrect) SDL_RenderPresent(SDL_Renderer* renderer) 


рдЦреИрд░, рд╣рдордиреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛, рдпрд╣ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ!

рд╡рд┐рдХрд▓реНрдк рд╕рдВрдЦреНрдпрд╛ ONCE:
рдпрд╣ рд╡рд┐рдзрд┐ SDL_mixer.h рдФрд░ SDL_Image.h , рдЗрд╕рд▓рд┐рдП рдЬрдм рдЖрдк рдХреЗрд╡рд▓ SDL2 рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭ рдкрд░ рдЪрд┐рд▓реНрд▓рд╛рдирд╛ рди рднреВрд▓реЗрдВред

рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рдХреЛ рдмрд┐рдирд╛ рд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
 SDL_Texture *player = IMG_LoadTexture(ren,"..\\res\\player.png"); 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЪрд░рд┐рддреНрд░ рдмрдирд╛рд╡рдЯ рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЕрднреА рднреА рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╡рд┐рдХрд▓реНрдк рд╕рдВрдЦреНрдпрд╛ TWO:
рд╣рдо рд╢реБрджреНрдз рдПрд╕рдбреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреГрд╖реНрдарднреВрдорд┐ рдмрдирд╛рдПрдВрдЧреЗред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рдпрд╣рд╛рдБ рдХреЛрдб!
 SDL_Surface *BMP_background = SDL_LoadBMP("..\\res\\background.bmp"); if (BMP_background == nullptr){ std::cout << "SDL_LoadBMP Error: " << SDL_GetError() << std::endl; return 1; } SDL_Texture *background = SDL_CreateTextureFromSurface(ren, BMP_background); SDL_FreeSurface(BMP_background); //   if (player == nullptr){ std::cout << "SDL_CreateTextureFromSurface Error: " << SDL_GetError() << std::endl; return 1; } 

рд╢реБрджреНрдз рдПрд╕рдбреАрдПрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП!

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣реБрд░реНрд░реЗ, рдЗрд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ!
 SDL_RenderClear(ren); //  SDL_RenderCopy(ren,background,NULL,&background_RECT); //    SDL_RenderCopy(ren, player, NULL, &player_RECT); //    SDL_RenderPresent(ren); //!! 


рдШрдЯрдирд╛рдУрдВ


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЦреЗрд▓ 2 рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рд╣рдорд╛рд░реЗ рдЪрдорддреНрдХрд╛рд░ рдореЗрдВ рдХреБрдЫ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп!

рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЕрдирдВрдд рдЫреЛрд░реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬреЛ рддрдм рддрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдШрдЯрдирд╛ рди рд╣реЛ рдФрд░ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рди рд╣реЛ:
 SDL_Event event; bool quit = false; while(!quit) while(SDL_PollEvent(&event)) { SDL_PumpEvents(); //  . } 


рдШрдЯрдирд╛рдУрдВ рд╕реЗ рд╕реАрдзреЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред
SDL рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ рд╣реИрдВ:


рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
 render_UPDATE(ren, ARRAY_textures, ARRAY_rect, ARRAY_texturesState); //     SDL_RenderPresent(ren); 

рдкрд╛рд╢ рдмрдВрдж рдХрд░реЛ!
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рдмрд╕ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреВрд░рд╛ рдХрд░рдирд╛ рдерд╛ред

рдкрд░реНрджрд╛!


рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЦрддреНрдо рдХрд░реЗрдВ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдмрдирд╛рд╡рдЯ рдХреЛ рд╕реНрдореГрддрд┐ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
 SDL_DestroyTexture(player); SDL_DestroyTexture(background); 


рдФрд░ рдЕрдм рдЖрдк SDL рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 SDL_DestroyRenderer(ren); SDL_DestroyWindow(win); SDL_Quit(); return 1; 

рдЕрдВрддрд┐рдо, рддрд╛рд▓рд┐рдпрд╛рдБ! рд╣рдордиреЗ SDL2 рдкрд░ рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛! рдХрд┐рд╕ рдЪреАрдЬ рдХреЗ рд╕рд╛рде рдореИрдВ рд╣рдореЗрдВ рдмрдзрд╛рдИ рджреЗрддрд╛ рд╣реВрдВ!

рдкреБрдирд╢реНрдЪ


рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рдореБрдЭреЗ 2 рджрд┐рди рд▓рдЧреЗред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрд╕рдбреАрдПрд▓ 2 рдореИрдиреБрдЕрд▓ рдмрд╣реБрдд рдХрдо рд╣реИрдВ рдЬреЛ рдХреБрдЫ рдЦреЛрдЬрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЦреБрдж рдХреЛ рд╢реВрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛ рдФрд░ рдпрд╣ рд░рд╛рдХреНрд╖рд╕ рдЖрдкрд╕реЗ рдЙрддрдирд╛ рд╕рдордп рдирд╣реАрдВ рд▓реЗрдЧрд╛ рдЬрд┐рддрдирд╛ рдореЗрд░рд╛ рд╣реИред

рд╕реНрд░реЛрдд рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/In201392/


All Articles