рдПрд╕рдбреАрдПрд▓ 2.0 рдкрд╛рда рдЪрдХреНрд░: рдкрд╛рда 5 - рдПрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рдХрд░рдирд╛

рдЫрд╡рд┐

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ:

рдпрд╣ рдЯреНрд╡рд┐рдВрдХрд▓рдмрд┐рдпрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ, рдЬреЛ рдпрд╣рд╛рдВ рдореВрд▓ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ред рдЕрдиреБрд╡рд╛рдж рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдорд╛рдореВрд▓реА рд╕рдВрд╢реЛрдзрди рдпрд╛ рдкрд░рд┐рд╡рд░реНрдзрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рджреЛ рдкрд╛рдареЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж - рд▓реЗрдЦрдХреАрдпInvalidPointerрдФрд░ рддреАрд╕рд░реЗ рдФрд░ рдЪреМрдереЗ рдХреЗ рд▓рд┐рдП k1-801ред


рд╕рдмрдХ рдХреА рд╕реВрдЪреА:



рд╕реНрдкреНрд░рд┐рдЯ рд╢реАрдЯ рдХрд╛ рдЯреБрдХрдбрд╝рд╛


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

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ SDL_RenderCopy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рд╡рдЯ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ , рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреАрд╕реНрдЯреНрд░реЛрдХ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдмрдирд╛рд╡рдЯ рдХреЗ рдХрд┐рд╕ рднрд╛рдЧ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗред рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдкрд░ рдЪрд╛рд░ рд░рдВрдЧреАрди рд╡реГрддреНрдд рд╣реЛрдВрдЧреЗ:

рдЫрд╡рд┐


рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдореЗрдВ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреЗ рдХрдИ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрд▓рд╛рдЗрд╕ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЕрдиреНрдпрдерд╛, рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдХреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рднрд╛рдЧреЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рд╣рдо рдЖрдХрд╛рд░ рдХреЗ 4 рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ 100x100 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкрд╛рда 4 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЛрдб рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЬреАрдердм рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рднрд╛рдЧ рдЪрдпрди


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

рд░реЗрдВрдбрд░рдЯреЗрдиреНрдЪрд░ рдмрджрд▓реЗрдВ


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

/**
*  SDL_Texture  SDL_Renderer   .
*     
* @param tex  ,   
* @param ren ,    
* @param dst     
* @param clip     ( )
*                 nullptr   
*/
void renderTexture(SDL_Texture *tex, SDL_Renderer *ren, SDL_Rect dst,
        SDL_Rect *clip = nullptr)
{
        SDL_RenderCopy(ren, tex, clip, &dst);
}

рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬрд╣рд╛рдБ рд╣рдореЗрдВ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП SDL_Rect рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ x рдФрд░ y рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкреНрд░рджрд░реНрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрдирд╛рд╡рдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рднрд░рдиреЗ рджреЗрдВред рд╣рдо рд░реЗрдВрдбрд░рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдУрд╡рд░рд▓реЛрдбреЗрдб рд╡рд░реНрдЬрди рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░реЗрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди nullptr рдХреЗ рд╕рд╛рде рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХрдЯ рдЖрдпрдд рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХрдЯреМрддреА рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдмрдирд╛рд╡рдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рдмрдЬрд╛рдп рдХрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЫреЛрдЯреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдЙрд╕рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдмрдбрд╝реЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╢реАрдЯ рдХреЗ рдЖрдХрд╛рд░ рддрдХ рдирд╣реАрдВ рдЦреАрдВрдЪреЗрдВрдЧреЗ рдЬрдм рдЗрд╕реЗ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдореВрд▓ рд░реЗрдВрдбрд░рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕рдВрд╢реЛрдзрди рд╣реИ рдФрд░ рдмрд╣реБрдд рд╕рдорд╛рди рджрд┐рдЦрддрд╛ рд╣реИред

/**
*  SDL_Texture  SDL_Renderer   x, y, 
*          
*    ,       
*          
* @param tex  ,   
* @param ren ,    
* @param x  x,    
* @param y  y,    
* @param clip     ( )
*                 nullptr   
*/
void renderTexture(SDL_Texture *tex, SDL_Renderer *ren, int x, int y,
        SDL_Rect *clip = nullptr)
{
        SDL_Rect dst;
        dst.x = x;
        dst.y = y;
        if (clip != nullptr){
                dst.w = clip->w;
                dst.h = clip->h;
        }
        else {
                SDL_QueryTexture(tex, NULL, NULL, &dst.w, &dst.h);
        }
        renderTexture(tex, ren, dst, clip);
}

рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдЖрдпрддреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ


рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╛рда 3 рд╕реЗ рдЯрд╛рдЗрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд┐рдкрд┐рдВрдЧ рдЖрдпрддреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ , рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓рд╛рдЗрди рд╕реЗ рд▓рд╛рдЗрди рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдХреЙрд▓рдо рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓рдо рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд╣рд▓рд╛ рдЯреБрдХрдбрд╝рд╛ рд╣рд░рд╛ рд╣реЛрдЧрд╛, рджреВрд╕рд░рд╛ рд▓рд╛рд▓ рд╣реЛрдЧрд╛, рддреАрд╕рд░рд╛ рдиреАрд▓рд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЪреМрдерд╛ рдкреАрд▓рд╛ рд╣реЛрдЧрд╛ред рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╛рда 3 рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдХреЙрд▓рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред рддреЛ рд╣рдорд╛рд░реЗ y рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдЯрд╛рдЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ (2) рджреНрд╡рд╛рд░рд╛ рдЯрд╛рдЗрд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╢реЗрд╖ рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ x рдХреЛ рдЯрд╛рдЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ x рдФрд░ y рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ x рдФрд░ y рд╕реВрдЪрдХ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрдиреНрд╣реЗрдВ рдХрдЯрдЖрдЙрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд┐рдХреНрд╕реЗрд▓ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рднреА рдЯрд╛рдЗрд▓реЛрдВ (100x100) рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред рдЕрдВрдд рдореЗрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╣рд▓реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреБрдХрдбрд╝реЗ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред

рд╣рдо рдЕрдкрдиреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдореЗрдВ рднреА рдЦреАрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрди x рдФрд░ y рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрдирд╛рд╡рдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рдмрдЬрд╛рдп рдЯрд╛рдЗрд▓ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

//iW  iH    
//   ,     ,     
int iW = 100, iH = 100;
int x = SCREEN_WIDTH / 2 - iW / 2;
int y = SCREEN_HEIGHT / 2 - iH / 2;

//    
SDL_Rect clips[4];
for (int i = 0; i < 4; ++i){
        clips[i].x = i / 2 * iW;
        clips[i].y = i % 2 * iH;
        clips[i].w = iW;
        clips[i].h = iH;
}
//     
int useClip = 0;

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

рдЗрдирдкреБрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд┐рддреНрд░ рдмрджрд▓реЗрдВ


рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдЫрд╡рд┐ рдХреЗ рд╕рднреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдИрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд▓реВрдк рдореЗрдВ рдХреАрдмреЛрд░реНрдб рдЗрдирдкреБрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ 1-4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рднрд╛рдЧ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреБрдВрдЬреА рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдШрдЯрдирд╛ SDL_KEYDOWN рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИ рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдХреБрдВрдЬреА рдХреЛ e.key.keysym.ym рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШрдЯрдирд╛ рдХреЗ рдЕрдВрджрд░ рдХреБрдВрдЬреА рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд┐рдХреА рдкрд░ рдШрдЯрдирд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ , рдХреБрдВрдЬреА рдХреЛрдб рдФрд░ SDL_Event рдкрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдХреА рдкреВрд░реА рд╕реВрдЪреА рдЙрдкрд▓рдмреНрдз рд╣реИред

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

while (SDL_PollEvent(&e)){
        if (e.type == SDL_QUIT)
                quit = true;
        //       
        if (e.type == SDL_KEYDOWN){
                switch (e.key.keysym.sym){
                        case SDLK_1:
                                useClip = 0;
                                *break;
                        case SDLK_2:
                                useClip = 1;
                                *break;
                        case SDLK_3:
                                useClip = 2;
                                *break;
                        case SDLK_4:
                                useClip = 3;
                                *break;
                        case SDLK_ESCAPE:
                                quit = true;
                                *break;
                        default:
                                *break;
                }
        }
}

рдПрдХ рдлрд╕рд▓реА рдЫрд╡рд┐ рдмрдирд╛рдПрдВ


рдЖрдЦрд┐рд░реА рдЪреАрдЬ рд╕реНрдХреНрд░реАрди рдкрд░ рдЫрд╡рд┐ рдХрд╛ рд╕рд╣реА рд╣рд┐рд╕реНрд╕рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ! рд╣рдо рдЗрд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЫрд╡рд┐ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдВрдбрд░рдЯреЗрдХреНрд╕реНрдЪрд░ рдХреЗ рд╣рдорд╛рд░реЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕реЗ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЙрдкрдпреЛрдЧ рдХреНрд▓реАрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛)ред

SDL_RenderClear(renderer);
renderTexture(image, renderer, x, y, &clips[useClip]);
SDL_RenderPresent(renderer);

рдкрд╛рда рдХрд╛ рдЕрдВрдд рел


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

All Articles