рдПрд╕рдбреАрдПрд▓ рдЦреЗрд▓рдирд╛ - рдЖрд╕рд╛рди

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рднреА рдХреЛ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдЧреНрд░рд╛рдлрд┐рдХ рдЧреЗрдо рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ред рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рд╕рдордп рдпрд╛ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ (рдпрд╛ рд╕рд┐рд░реНрдл рд▓рд┐рдЦрдирд╛) рдПрдХ рд╕рд░рд▓ рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╣реА рдордЬреЗрджрд╛рд░ рдЦреЗрд▓ рд╣реИред
рд╕рдорд╛рдкреНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛


рдпрд╣ рдЕрд▓реНрдкрдЬреНрдЮрд╛рдд рдлреНрд▓рдб-рдЗрдЯ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЕрддреНрдпрдВрдд рд╕рд░рд▓ рд╣реИ:
рдкреВрд░реЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рд░рдВрдЧ рдореЗрдВ рд░рдВрдЧрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЖрдк рдКрдкрд░реА рдмрд╛рдПрдБ рд╡рд░реНрдЧ рд╕реЗ рд╕рдЯреЗ рдПрдХ рд╣реА рд░рдВрдЧ рдХреЗ рдкреВрд░реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдкреЗрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рд╛рд░рдВрдн



рдкреНрд░рддреНрдпреЗрдХ рдПрд╕рдбреАрдПрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЖрд╡рд╢реНрдпрдХ рдЙрдк-рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реИред
рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ SDL_Init рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реЛрддреА рд╣реИ
рдЬреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рд╕реНрдерд┐рд░рд╛рдВрдХ (рдПрдХ рддрд╛рд░реНрдХрд┐рдХ "рдпрд╛" рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ) рдЬреЛ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рддреЛ, рд╡реАрдбрд┐рдпреЛ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛
SDL_Init(SDL_INIT_VIDEO) 



рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



рдУрд╣, рдЕрдЧрд░ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рджреБрд░реНрдШрдЯрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ SDL_Init рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдорд╛рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рд╣рдореЗрд╢рд╛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИред

 if ( SDL_Init( SDL_INIT_VIDEO ) < 0 ) { printf( "Unable to init SDL"); return 1; } 



рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ (рдФрд░ рд╣рдо) рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдереАред SDL_GetError () рд╣рдореЗрд╢рд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрд╛рда рд╡рд╛рдкрд╕ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рдмрдирд╛ рджреЗрдВрдЧреЗ

 if ( SDL_Init( SDL_INIT_VIDEO ) < 0 ) { printf( "Unable to init SDL: %s", SDL_GetError()); return 1; } 


рд╕рддрд╣



рдЦреИрд░, рдЕрдм рдЬрдм рд╣рдо рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рддрд╣реЛрдВ (рд╕рддрд╣реЛрдВ) рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реА рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдУрд╡рд░рд▓реИрдк, рдЙрдиреНрд╣реЗрдВ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВред
рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рднрд╛рдЧ рдХреЛ рднреА рд╕рддрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕ рд╕рддрд╣ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб SDL_SetVideoMode рд╣реИ, рдЬреЛ рдЖрдХрд╛рд░ рд╕реЗрдЯ рдХрд░реЗрдЧрд╛
рдпрд╣ рд╕рддрд╣ (рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдХреНрд░реАрди), рдкреНрд░рддрд┐ рд░рдВрдЧ рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреИрд░рд╛рдореАрдЯрд░, рдЬрд┐рд╕рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ / рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдПрдХ рдЙрдкрдпреЛрдЧреА рдкреИрд░рд╛рдореАрдЯрд░ SDL_DOUBLEBUF рднреА рд╣реИ рдЬреЛ рдЗрд╕ рд╕рддрд╣ рдкрд░ рдмрдлрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдХреНрд╖рдг рддрдХ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЧрддрд┐ рджреЗрдЧрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдорд╛рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рдФрд░ рд╕реБрд╕рдВрд╕реНрдХреГрдд рд╣реИ)

рддреЛ, рдПрдХ рд╕рддрд╣ рдмрдирд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ

 SDL_Surface * screen = SDL_SetVideoMode(550, 420, 16, SDL_HWSURFACE | SDL_DOUBLEBUF); /// 550x420 тАФ     .    16-.     -  SDL_HWSURFACE //     ,   SDL_SWSURFACE( ) 



рдлрд┐рд░ рд╕реЗ, рд╣рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдлрд┐рд░ рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдпрджрд┐ рдХреЛрдИ рд╕рддрд╣ рдирд╣реАрдВ рд╣реИ рддреЛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдВрдЧреЗред

 If (!screen) { printf("Can't set videomode: %s", SDL_GetError()); return 1; } 



рдЫрд╡рд┐



рдЕрдм рдЬрдм рд╣рдордиреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рднреА рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
14x14 рдЦреЗрд▓ рдореИрджрд╛рди рдореЗрдВ 6 рд░рдВрдЧреЛрдВ рдХреЗ рдмреНрд▓реЙрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рддрд╕реНрд╡реАрд░ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдирд┐рд░рд╛рд╢рд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрд╕рдбреАрдПрд▓ рдХреЗрд╡рд▓ рдмреАрдПрдордкреА рдкреНрд░рд╛рд░реВрдк рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ SDL_Image рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╡реЙрд▓реНрдпреВрдо рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдмреАрдПрдордкреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдЖрдк рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рд╕рддрд╣ рдкрд░ рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 int InitImages() { for (int i = 0; i < 6; i++) //    6  { char path[20]; for (int j = 0; j < 20; j++) path[j] = 0; sprintf(path, "Block%d.bmp", i); block[i] = SDL_LoadBMP(path); //  BMP     block[i] if (!block[i]) return -1; } return 1; } 



рдФрд░ рдЕрдЧрд░ рдЫрд╡рд┐ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ (рдФрд░ рдлрд┐рд░ рд╣рдореЗрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ)ред
рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдХреА рдЫрд╡рд┐ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ - рд╕рддрд╣ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдмреНрд▓реЙрдХ рдХреЛ рд╕рддрд╣реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЦреЗрд▓ рдореИрджрд╛рди рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╣реИред рдПрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ ... рдПрдХ рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рддрд╣ рд╣реЛрддреА рд╣реИ, рдПрдХ рд╕реНрдХреНрд░реАрди рдХреА рд╕рддрд╣ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рд╕рддрд╣ (рдпрд╛ рднрд╛рдЧ) рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?

рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, SDL_BlitSurface рд╣реИ, рдЬреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ X1, y1 рдФрд░ рдЖрдпрд╛рдо w рдХреЗ рд╕рд╛рде рдПрдХ рд╕рддрд╣ рд╕реЗ рдЖрдпрдд рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ, x2, y2 рдХреЗ рд╕реНрдерд╛рди рдкрд░ рджреВрд╕рд░реА рд╕рддрд╣ рдкрд░ hред рдХрд┐рд╕реА рддрд░рд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рдореБрдЦ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реАрди рдХреА рд╕рддрд╣ рдкрд░ рд╕рдм рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдПрдХ рдЫреЛрдЯреА рд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦреЗрдВрдЧреЗ

 void DrawImage(SDL_Surface * img, int x, int y, int w, int h, int sx, int sy) { SDL_Rect desc; // ,    . desc.x = x; desc.y = y; SDL_Rect src; //  . src.x = sx; src.y = sy; src.w = w; src.h = h; SDL_BlitSurface(img, &src, screen, &desc); } 



рдЖрдЗрдП рдкрд╛рд░рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:
img - рд╕рддрд╣, рдЬрд┐рд╕рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдо рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред X, Y рд╡реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрд╕рдПрдХреНрд╕, рдПрд╕рд╡рд╛рдИ, рдбрдмреНрд▓реНрдпреВ, рдПрдЪ - рдкреНрд░рджрд░реНрд╢рд┐рдд рдЖрдпрдд рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ (рдХреЛрдг рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдЖрдХрд╛рд░)ред рд╕рдВрдЪрд░рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЬрд╛рджреВ рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ SDL_Rect рдкреНрд░рдХрд╛рд░ (рдЖрдпрдд рд╕реЗ) рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ 4 рдорд╛рди рд╣реИрдВ - X, Y, W, H. рдЦреИрд░, рдирдП рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдУрд╡рд░рд▓реИрдкрд┐рдВрдЧ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рдФрд░, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЦреЗрд▓ рдореИрджрд╛рди рдмрдирд╛рдирд╛ред рдЖрдЗрдП рдЬреЗрдирдкреИрди рдлрд╝реАрд▓реНрдб рдЬрдирд░реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдПрдВ рдЬреЛ 0 рд╕реЗ 5 рддрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ (рд░рдВрдЧ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реБрдП) рдХреЗ рд╕рд╛рде рдирдХреНрд╢реЗ рдХреЛ рднрд░рддрд╛ рд╣реИред

 void GenMap() { for (int i = 0; i < maps; i++) for (int j = 0; j < maps; j++) map[i][j] = rand() % 6; } 



рдмреНрд▓реЙрдХ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЫрд╡рд┐ рдХреЛ рдЙрд╕рдХреЗ рд╕рд╣реА рд╕реНрдерд╛рди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝реЗрдВ (рдмреНрд▓реЙрдХ рдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП, рд╡рд╛рдИ рдпрд╣ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП 30 * X, 30 * Y, 30 * (X + 1), 30 * (Y + 1) рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдпрдд рд╣реЛрдЧреАред 30x30 рдкрд┐рдХреНрд╕реЗрд▓)ред

 void DrawBlock(int x, int y) { DrawImage(block[map[x][y]], 30 * x, 30 * y, 30, 30, 0, 0); //    30*x, 30*y  30x30 } 



рдФрд░ рдЙрд╕реА рд╕рдордп, рд╣рдо рдкреВрд░реЗ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ

 void DrawMap() { for (int i = 0; i < maps; i++) // maps(map size) тАФ   . for (int j = 0; j < maps; j++) DrawBlock(i, j); } 



рдХреНрдпрд╛ рд╣реБрдЖ, рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХрд╛ рд╕рдордпред рд╣рдо рдПрдХ рдХреНрд╖реЗрддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рдШрдЯрд╛рддреЗ рд╣реИрдВ, рдФрд░ ... рдХреБрдЫ рдирд╣реАрдВ! рдРрд╕рд╛ рдХреИрд╕реЗ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди ... рд╕реНрдХреНрд░реАрди рдмрдлрд░, рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ред рдпрд╣ рдмрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

  GenMap(); DrawMap(); SDL_Flip(screen); 



рдпрд╣ SDL_Flip рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рд╡рд╛рдВрдЫрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░реЗрдЧрд╛ред рдФрд░ рдЕрдм рдЖрдк рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдкрд░рд┐рдгрд╛рдо

рдорд╣рд╛рди, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдпрд╣, рд╢рд╛рдпрдж, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд░рд╣рдиреЗ рд▓рд╛рдпрдХ рд╣реИред рдпрд╣рд╛рдВ рдЬрд╛рд░реА рд╣реИ ред

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


All Articles