рдпрд╣ рд▓реЗрдЦ рдЗрд╕
рдкреЛрд╕реНрдЯ рдХрд╛ рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИред
рдЗрд╕ рдмрд╛рд░ рд╣рдо рдХреАрдмреЛрд░реНрдб рдФрд░ рдорд╛рдЙрд╕ рдХреЗ рдХреАрд╕реНрдЯреНрд░реЛрдХ рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдПрдХ рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рд╣рд╛рдереЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рда рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЦреЗрд▓ рдХреЛ рдЕрдВрдд рддрдХ рдЬреЛрдбрд╝рдХрд░ рдиреИрддрд┐рдХ рд╕рдВрддреБрд╖реНрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдШрдЯрдирд╛рдУрдВ
рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирдХреНрд╢рд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╣реЛрдЧрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛ (рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдмрдВрдж рдХрд░рдирд╛, рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдирд╛, рдорд╛рдЙрд╕ рдХреЛ рд╣рд┐рд▓рд╛рдирд╛) SLD_PollEvent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, SDL_Event рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЪрд░ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛ рдкрддрд╛) рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдВрддрд┐рдо рдШрдЯрдирд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред рдШрдЯрдирд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЬрд╛рдБрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ - рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдПрдХ рдирд┐рдХрд╛рд╕ рдШрдЯрдирд╛ рд╕реЗ рдмрдВрдж рдХрд░рдирд╛ред рд╣рдо рдЙрд╕ рдШрдЯрдирд╛ рдХреА рдкреНрд░рддреНрдпрд╛рд╢рд╛ рдореЗрдВ рдЪрдХреНрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЕрдВрддрд╣реАрди рд░реВрдк рд╕реЗ рдЬрд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░, рд╣рдо рдореБрдЦреНрдп рдЪрдХреНрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдВрдЧреЗред
while (!done) { while (SDL_PollEvent(&event))
рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВред рдЕрдм рд╡рд┐рдВрдбреЛ рдкреВрд░реНрдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ (ALT + F4 рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдВрдбреЛ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЯрди) рдкрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧреАред рд▓реЗрдХрд┐рди, рдпрд╣рд╛рдБ рд╣рдордиреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмреЗрдХрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рд╕реАрдкреАрдпреВ рд╕рдордп, рдЪрдХреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рд╕рд┐рд░реНрдл рдЗрд╕ рдШрдЯрдирд╛ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ:
while (!done) { SDL_WaitEvent(&event);
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЦреЗрд▓ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдмрд╣реБрдд рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:

рд╣рдо рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд┐рд╕реА рднреА рдмреНрд▓реЙрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдЙрд╕ рд░рдВрдЧ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХреЗрдЧрд╛, рдЬрд┐рд╕рдХреА рдЙрд╕реЗ рдЬрд░реВрд░рдд рд╣реИред рдмреНрд▓реЙрдХ 0 рд╕реЗ 30 * рдирдХреНрд╢реЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реЗ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХреНрд▓рд┐рдХреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реА рд░реБрдЪрд┐ рдирд╣реАрдВ рд╣реИред
case SDL_MOUSEBUTTONDOWN: { if (event.button.button = SDL_BUTTON_LEFT) { int x = event.button.x, y = event.button.y;
AddColor рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбреНрд░рд╛рдмреЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╕реЗрд▓ рдХреЗ рдЖрд░реЗрдЦрдг рдХреЗ рд╕рд╛рде рдПрдХ рдЧрд╣рди рдЦреЛрдЬ рд╣реИ рдФрд░ 1 рд╕реЗ рдЪрд╛рд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдмрджрд▓ рджреЗрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд░реБрдЪрд┐ рдирд╣реАрдВ рд╣реИред
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХреБрдВрдЬреА рдкрд░ рдПрдХ рдХрджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдкрд░ рдЕрд▓рдЧ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
case SDL_KEYDOWN: { switch(event.key.keysym.sym) { case SDLK_ESCAPE:
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЧрд╛рдпрдм рд╣реИ рдЪрд╛рд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯред
рдкрд╛рда рдкреНрд░рддрд┐рдкрд╛рджрди
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, SDL рдкрд╛рда рд╕рдорд░реНрдерди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХреЗ рд▓рд┐рдП 2 рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
1) рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░реЗрдВ
2) SDL_ttf.h рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдЖрдк рдПрдХ рдкрддреНрд░ рдХреЛ рдПрдХ рдЫрд╡рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдмреНрд▓реЙрдХред рд╡рд░реНрдХрдкреАрд╕ рдХреЛ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рддреЛ рдПрдХ рдЕрд▓рдЧ рдЫрд╡рд┐ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрддреНрд░, рдпрд╛ рдПрдХ рдмрдбрд╝реА рддрд╕реНрд╡реАрд░ рдмрдирд╛рдПрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдкрддреНрд░ рдХреЗ рдЕрдиреБрд░реВрдк рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ SDL_SetColorKey рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рд╕рддрд╣ рдкрд░ рдЪрдпрдирд┐рдд рд░рдВрдЧ рдХреЛ рдЙрд╕реА рд░рдВрдЧ рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ (рдЗрд╕ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ - 255 0 255)
SDL_SetColorKey(img, SDL_SRCCOLORKEY, SDL_MapRGB(img->format,255, 0, 255));
рд░рдВрдЧ (255, 0, 255) рдЕрдм img рд╕рддрд╣ рдкрд░ рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдЧрд╛ред
рдЪреБрдирдиреЗ рдХрд╛ рдХреМрди рд╕рд╛ рддрд░реАрдХрд╛ рдЖрдкрдХреЗ рдКрдкрд░ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдХрдо рд╢реНрд░рдорд╕рд╛рдзреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдХреЛ рдЪреБрдирд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рднреА рдзреАрдореА рд╣реИред
рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рднреА рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рдмрд┐рдирд╛ рд╣рд░ рдмрд╛рд░ рдкрд╛рда рдХрд╛ рд░рдВрдЧ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ TTF рдлрд╝реЙрдиреНрдЯ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдПрд╕рдбреАрдПрд▓ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВред рдЗрд╕ рдмрд╛рд░ рдХрд┐рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
TTF_Init();
рдкрд╛рда рдЖрдЙрдЯрдкреБрдЯ рдХреЛрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
void WriteText(int x, int y, char text[100], int sz, int r, int g, int b) { SDL_Color clr;
рдЕрдм рд╣рдо рдбреНрд░рд╛рд╕реНрдЯреЗрдк рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ CleanImage () рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдкрд╛рда рдХреЗ рдЖрдЧреЗ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рджрд┐рдП рдЧрдП рдЖрдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕рд╛рдл рдХрд░реЗрдЧрд╛ред
void CleanImage(int x, int y, int w, int h) { SDL_Rect desc; desc.x = x; desc.y = y; desc.w = w; desc.h = h; SDL_FillRect(screen, &desc, 0);
рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖ:

рдпрд╣ рд╕рдм, рдЖрдк рдПрдХ рджрд░реНрдЬрди, рд╕реИрдХрдбрд╝реЛрдВ рдмрд╛рд░ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХреБрдЫ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реЗ рд╕реНрд░реЛрдд рдЬрд┐рдирдореЗрдВ рдХреЛрдб рдХреЗ рдЫреЛрдЯреЗ рдЬреЛрдбрд╝ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЖрдк
рдпрд╣рд╛рдВ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред