рдПрд╕рдбреАрдПрд▓ рдЧреЗрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЕрдиреБрд╡рд╛рджред рднрд╛рдЧ 2 - рдПрд╕рдбреАрдПрд▓ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдмреНрд▓рд┐рдЯрд┐рдВрдЧ

рдкрд╣рд▓реЗ рд╕рдмрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдПрд╕рдбреАрдПрд▓ рд╕рддрд╣реЛрдВ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░реЗрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдПрд╕рдбреАрдПрд▓ рд╕рддрд╣реЛрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдЪрд┐рддреНрд░ рд╣реИрдВред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдХрд╛рд░ рдореЗрдВ 320x240 рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдПрдХ рдЦрд╛рд▓реА рдЦрд┐рдбрд╝рдХреА рд╣реИред рдПрд╕рдбреАрдПрд▓ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ, рд╡рд┐рдВрдбреЛ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:



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

рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рддреИрдпрд╛рд░ рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рддрд╣ ( Surf_Display ) рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдмрд╕ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдмреНрд▓рд┐рдЯрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдВрдЧреНрд░реЗрдЬреА рдмреНрд▓рд┐рдЯрд┐рдВрдЧ рд╕реЗ - рдмрд┐рдЯреНрд╕ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЛ рдПрдХ рд╕реНрдерд╛рди рд╕реЗ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдирд╛, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдПрдХ рдЫрд╡рд┐ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ (рдпрд╛ рдЗрд╕рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛) рджреВрд╕рд░реЗ рдХреЗ рдКрдкрд░), рдЕрд░реНрдерд╛рддреНред рдУрд╡рд░рд▓реЗ рдХреА рддрд░рд╣ред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдРрд╕рд╛ рдХрд░ рд╕рдХреЗрдВ, рд╣рдореЗрдВ рдЗрди рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рднреА рдЦреЛрдЬрдирд╛ рд╣реЛрдЧрд╛ред SDL рдЕрдкрдиреА рдпреЛрдЬрдирд╛ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - SDL_LoadBMP (рдиреЛрдЯ: SDL_LoadBMP рдХреЗрд╡рд▓ * .BMP рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реА рдЪрд┐рддреНрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдирд╛рдо рдХрд╛ рдЕрд░реНрде рд╣реИред рдЕрдиреНрдп рд╕реНрд╡рд░реВрдкреЛрдВ рдХреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ SDL_image рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╣реА рд░реВрдк рд╕реЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рд╣реИ)ред рдкрд╣рд▓реЗ рдкрд╛рда рдореЗрдВ alrusdi , рдФрд░ рдлрд╝рдВрдХреНрд╢рди IMG_Load рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред рдПрдХ рдирдореВрдирд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

рдЙрджрд╛рд╣рд░рдг
SDL_Surface* Surf_Temp; if((Surf_Temp = SDL_LoadBMP("mypicture.bmp")) == NULL) { //! } 


рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, SDL_LoadBMP рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ - рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдЬрд┐рд╕реЗ рдЖрдк рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рддрд╣ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЫрд╡рд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди NULL рджреЗрддрд╛ рд╣реИ , рддреЛ рдпрд╛ рддреЛ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ, рдпрд╛ рдпрд╣ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рд╣реИ, рдпрд╛ рдЕрдиреНрдп, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реБрдИ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рджрдХреНрд╖рддрд╛ рдХреА рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдзрд┐ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд▓реЛрдбрд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдкреВрд░реНрдг рдХрд╡рд░реЗрдЬ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдмрд╣реБрдд рдмрд╛рд░, рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐ рд╕рддрд╣ рдХреЗ рдкрд┐рдХреНрд╕реЗрд▓-рдмрд╛рдп-рдкрд┐рдХреНрд╕реЗрд▓ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЗрд╕реЗ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рджрд░реНрд╢рди рдХреЗ рджреМрд░рд╛рди, рдкреНрд░рджрд░реНрд╢рди, рдЫрд╡рд┐ рд░рдВрдЧ рдЖрджрд┐ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВред (рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рддреИрдпрд╛рд░ рдХреА рдЧрдИ рд╕рддрд╣ рдФрд░ рднрд░реА рд╣реБрдИ рдЫрд╡рд┐ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдлрд┐рдЯ рдХрд░рддреА рд╣реИ, рдЕрд░реНрдерд╛рдд (рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐рдкреВрд░реНрдг) рдмреЙрдХреНрд╕ рдХрд╛ рдЖрдХрд╛рд░ рд▓реЛрдб рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдлрд┐рдЯ рдХрд░реЗрдЧрд╛)ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, SDL рдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рдФрд░ рджрд░реНрдж рд░рд╣рд┐рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ - SDL_DisplayFormat ред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдПрдХ рдирдИ рд╕рддрд╣ рджреЗрддрд╛ рд╣реИред
рдЕрдм рдЖрдкрдХреЛ рдкрд┐рдЫрд▓реЗ рдкрд╛рда рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: CSurface.h рдФрд░ CSurface.cpp ред CSurface.h рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ:

CSurface.h
 #ifndef _CSURFACE_H_ #define _CSURFACE_H_ #include <SDL/SDL.h> class CSurface { public: CSurface(); public: static SDL_Surface* OnLoad(char* File); }; #endif 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдПрдХ рд╕рд░рд▓ рдУрдирд▓реЙрдб рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдпрд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рддрд╣ рдХреЛ рд▓реЛрдб рдХрд░реЗрдЧрд╛ред рдЕрдм CSurface.cpp рдЦреЛрд▓реЗрдВ рдФрд░ рдЬреЛрдбрд╝реЗрдВ:

CSurface.cpp
 #include "CSurface.h" CSurface::CSurface() { } SDL_Surface* CSurface::OnLoad(char* File) { SDL_Surface* Surf_Temp = NULL; SDL_Surface* Surf_Return = NULL; if((Surf_Temp = SDL_LoadBMP(File)) == NULL) { return NULL; } Surf_Return = SDL_DisplayFormat(Surf_Temp); SDL_FreeSurface(Surf_Temp); return Surf_Return; } 


рддреЛ, рдХреБрдЫ рдмрд╛рддреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП:
1. рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ (NULL рдпрд╛ "0" рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛)ред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдвреЗрд░ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛;
2. рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ SDL_DisplayFormat рдкреБрд░рд╛рдиреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдИ рд╕рддрд╣ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕ рдкреБрд░рд╛рдиреА рд╕рддрд╣ рдХреЗ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред рдЕрдиреНрдпрдерд╛, рд╣рдо рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рддрд╣ "рднрдЯрдХ" рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рд╕рдиреНрди рд╣реЛрддрд╛ рд╣реИред
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рддрд╣реЛрдВ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рд╕рддрд╣реЛрдВ рдкрд░ рдореИрдк рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рднреА рдЪрд╛рд╣рд┐рдПред рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде SDL рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ: SDL_BlitSurface ред рдпрд╣ SDL_LoadBMP рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбрд░реЗрдВ рдирд╣реАрдВред CSurface.h рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЬреЛрдбрд╝реЗрдВ:

CSurface.h
 #ifndef _CSURFACE_H_ #define _CSURFACE_H_ #include <SDL/SDL.h> class CSurface { public: CSurface(); public: static SDL_Surface* OnLoad(char* File); static bool OnDraw(SDL_Surface* Surf_Dest, SDL_Surface* Surf_Src, int X, int Y); }; #endif 


CSurface.cpp рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ:

CSurface.cpp
 #include "CSurface.h" CSurface::CSurface() { } SDL_Surface* CSurface::OnLoad(char* File) { SDL_Surface* Surf_Temp = NULL; SDL_Surface* Surf_Return = NULL; if((Surf_Temp = SDL_LoadBMP(File)) == NULL) { return NULL; } Surf_Return = SDL_DisplayFormat(Surf_Temp); SDL_FreeSurface(Surf_Temp); return Surf_Return; } bool CSurface::OnDraw(SDL_Surface* Surf_Dest, SDL_Surface* Surf_Src, int X, int Y) { if(Surf_Dest == NULL || Surf_Src == NULL) { return false; } SDL_Rect DestR; DestR.x = X; DestR.y = Y; SDL_BlitSurface(Surf_Src, NULL, Surf_Dest, &DestR); return true; } 


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП OnDraw рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд╣рдо рджреЛ рд╕рддрд╣реЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдВрдЯ рдЗрдВрдЯ ред рдкрд╣рд▓реА рд╕рддрд╣ рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкрд╣рд▓реЗ рдкрд╛рда рдореЗрдВ рдмреЛрд░реНрдб рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ?), рдЖрдИред рдЬрд┐рд╕ рдкрд░ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдм рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред рддрджрдиреБрд╕рд╛рд░, рджреВрд╕рд░реА рд╕рддрд╣ рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЖрдзрд╛рд░ рдкрд░ рд▓рдЧрд╛рдПрдВрдЧреЗ (рдФрд░ рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рд╕реНрдЯрд┐рдХрд░ рд╣реИрдВ)ред рдЕрд╕рд▓ рдореЗрдВ, рд╣рдо рд╕рд┐рд░реНрдл Surf_Src рдХреЛ Surf_Dest рдХреЗ рдКрдкрд░ рд░рдЦрддреЗ рд╣реИрдВ , рдпрд╣ рдкреВрд░рд╛ рд░рд╣рд╕реНрдп рд╣реИред X рдФрд░ Y рд╡реЗ рдЪрд░ рд╣реИрдВ рдЬреЛ Surf_Dest рд╕рддрд╣ рдкрд░ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рд╣рдо Surf_Src рдХреЛ рдореИрдк рдХрд░реЗрдВрдЧреЗ ред
рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рддрд╣реЛрдВ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдЭреВрдареЗ рд▓реМрдЯрддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рд╣рдо SDL_Rect рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ ред рдпрд╣ рдПрдХ рдПрд╕рдбреАрдПрд▓ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЪрд╛рд░ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХреНрд╕ , рд╡рд╛рдИ , рдбрдмреНрд▓реНрдпреВ , рдПрдЪред рдмреЗрд╢рдХ, рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╕рддрд╣ рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдм рддрдХ, рд╣рдо рдХреЗрд╡рд▓ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо рдЖрдпрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИред рддреЛ, рдЖрдЧреЗ рд╣рдо рдПрдХреНрд╕ , рд╡рд╛рдИ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕реМрдВрдкрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реИрдВ рдХрд┐ NULL рдкреИрд░рд╛рдореАрдЯрд░ рд╣рдорд╛рд░реЗ SDL_BlitSurface рдореЗрдВ рдХреНрдпрд╛ рд╣реИ (рд╣рд╛рдБ, рд▓реЗрдЦрдХ, рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ!), рдпрд╣ SDL_Rect рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЗрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдПрдВрдЧреЗред
рдмрд╛рдж рдореЗрдВ рдЖрдпрд╛! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ SDL_BlitSurface рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреЛрдИ рднреА рдирд╛рд░рд╛рдЬ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ: рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рдкреВрд░реА рд╕рддрд╣ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рдКрдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдРрд╕реЗ рдХрдИ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЛ рдЫрд╡рд┐ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЯрд╛рдЗрд▓рд╕реЗрдЯ рд╣реИ (рдЕрдВрдЧреНрд░реЗрдЬреА рдЯрд╛рдЗрд▓ рд╕реЗ - рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ, рдмрд╕ рдПрдХ рдЫрд╡рд┐ рдореЗрдВ рдЗрдХрдЯреНрдареЗ рд╣реБрдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЪрд┐рддреНрд░) рдФрд░ рдЖрдк рдЗрд╕реЗ рдПрдХ рдмрдирд╛рд╡рдЯ рдпрд╛ рдЪрд░рд┐рддреНрд░, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд░реНрдЧ рд╕реЗ рдЪреБрдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ)ред рддреЛ рдпрд╣рд╛рдБ рд╣реИ

 int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect); 

рдХреНрд░рдо рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ:

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рд╕рдм рдХреБрдЫ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдкрд╛рд░рджрд░реНрд╢реА рдФрд░ рд╕рдордЭ рдореЗрдВ рдЖ рдЧрдпрд╛ рд╣реИред
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рддрд╣реЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдЪ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ ред

рдЕрдм, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЪрд▓реЛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рддрд╣ рдмрдирд╛рддреЗ рд╣реИрдВред CApp.h рдЦреЛрд▓реЗрдВ, рдФрд░ рдПрдХ рдирдИ рд╕рддрд╣ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ CSurface.h рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ:

CApp.h
 #ifndef _CAPP_H_ #define _CAPP_H_ #include <SDL/SDL.h> #include "CSurface.h" class CApp { private: bool Running; SDL_Surface* Surf_Display; SDL_Surface* Surf_Test; public: CApp(); int OnExecute(); public: bool OnInit(); void OnEvent(SDL_Event* Event); void OnLoop(); void OnRender(); void OnCleanup(); }; #endif 


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, рд╣рдорд╛рд░реА рд╕рддрд╣реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╢реВрдиреНрдп рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ:

CApp.cpp
 CApp::CApp() { Surf_Test = NULL; Surf_Display = NULL; Running = true; } 


рдФрд░ рд╕рд╛рдл рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ!

CApp_OnCleanup.cpp
 #include "CApp.h" void CApp::OnCleanup() { SDL_FreeSurface(Surf_Test); SDL_FreeSurface(Surf_Display); SDL_Quit(); } 


рдХреБрдЫ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред CApp_OnInit.cpp рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдПрдВ :

CApp_OnInit.cpp
 #include "CApp.h" bool CApp::OnInit() { if(SDL_Init(SDL_INIT_EVERYTHING) < 0) { return false; } if((Surf_Display = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF)) == NULL) { return false; } if((Surf_Test = CSurface::OnLoad("myimage.bmp")) == NULL) { return false; } return true; } 


рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ myimage.bmp рдлрд╝рд╛рдЗрд▓ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдпрд╛ рдбреНрд░рд╛ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЧреЗрдо рдХреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦреЗрдВред CApp_OnRender.cpp рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ:

CApp_OnRender.cpp
 #include "CApp.h" void CApp::OnRender() { CSurface::OnDraw(Surf_Display, Surf_Test, 0, 0); SDL_Flip(Surf_Display); } 


рдирдпрд╛ SDL_Flip рдлрд╝рдВрдХреНрд╢рди рджреЗрдЦреЗрдВред рдпрд╣ рдмрдлрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ Surf_Display рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдбрдмрд▓ рдмрдлрд░рд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдирд┐рд░реНрдорд┐рдд рд╕рддрд╣реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рдореЗрдореЛрд░реА рдореЗрдВ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕реНрдХреНрд░реАрди рдкрд░ рддреИрдпрд╛рд░ рдПрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдордиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реЛрддрд╛, рддреЛ рд╣рдореЗрдВ рдПрдХ рдЪрдВрдЪрд▓ рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рдИ рджреЗрддреАред SDL_DOUBLEBUF рдзреНрд╡рдЬ рдпрд╛рдж рд░рдЦреЗрдВ рдЬреЛ рд╣рдордиреЗ рд╕рддрд╣ рдмрдирд╛рддреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдерд╛? рдпрд╣ рдареАрдХ рдпрд╣реА рд╣реИ рдЬреЛ рдбрдмрд▓ рдмрдлрд░рд┐рдВрдЧ рдореЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
рдЕрдм рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рд╡рд┐рдВрдбреЛ рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рджреЗрдЦрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдмрдзрд╛рдИ рд╣реЛ, рдЖрдк рдЕрд╕рд▓реА рдЦреЗрд▓ рдХреЗ рдХрд░реАрдм рдПрдХ рдХрджрдо рд╣реИрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ myimage.bmp рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИ, рдФрд░ рдпрд╣ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рджрд░реНрд╢рдХ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЦреБрд▓рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ:



(рдФрд░ рд╣рд╛рдВ, рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЕрдкрдиреЗ рдЕрд╡рддрд╛рд░ рдХреЛ * .PNG рдкреНрд░рд╛рд░реВрдк рдореЗрдВ IMG_Load рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ ред рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рднреАред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдПрдВ рдФрд░ рдЖрдк рд╕рдлрд▓ рд╣реЛрдВрдЧреЗ!)ред рдпрджрд┐ рдЖрдкрдХреЛ рд╕рдВрджреЗрд╢ deprecated conversion from string constant to 'char*' -wwrite-strings рд▓рд┐рдП рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ deprecated conversion from string constant to 'char*' -wwrite-strings рдЖрдкрдХреЛ deprecated conversion from string constant to 'char*' -wwrite-strings OnLoad (char * File) рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ OnLoad (const char * File) рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░, CSurface.cpp рдореЗрдВ ред

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

tilesets








рдпрд╛рдиреА рдХреЗрд╡рд▓ рдПрдХ рдЫрд╡рд┐ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред CSurface.h рдЦреЛрд▓реЗрдВ, рдФрд░ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

CSurface.h
 #ifndef _CSURFACE_H_ #define _CSURFACE_H_ #include <SDL/SDL.h> class CSurface { public: CSurface(); public: static SDL_Surface* OnLoad(char* File); static bool OnDraw(SDL_Surface* Surf_Dest, SDL_Surface* Surf_Src, int X, int Y); static bool OnDraw(SDL_Surface* Surf_Dest, SDL_Surface* Surf_Src, int X, int Y, int X2, int Y2, int W, int H); }; #endif 


CSurface.cpp рдЦреЛрд▓реЗрдВ, рдФрд░ рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ (рдорд╣рддреНрд╡рдкреВрд░реНрдг, рд╣рдо рджреВрд╕рд░рд╛ OnDraw рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдореМрдЬреВрджрд╛ рдПрдХ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ! рдХреНрдпрд╛ рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ?) :

CSurface.cpp
 bool CSurface::OnDraw(SDL_Surface* Surf_Dest, SDL_Surface* Surf_Src, int X, int Y, int X2, int Y2, int W, int H) { if(Surf_Dest == NULL || Surf_Src == NULL) { return false; } SDL_Rect DestR; DestR.x = X; DestR.y = Y; SDL_Rect SrcR; SrcR.x = X2; SrcR.y = Y2; SrcR.w = W; SrcR.h = H; SDL_BlitSurface(Surf_Src, &SrcR, Surf_Dest, &DestR); return true; } 


рдЖрдк рджреЗрдЦреЗрдВ, рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реА рдХрд╛рд░реНрдп рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╣рдордиреЗ рдПрдХ рдФрд░ SDL_Rect рдЬреЛрдбрд╝рд╛ рд╣реИред рдпрд╣ рдХреНрд╖реЗрддреНрд░ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдУрд╡рд░рд▓реЗ рд╕рддрд╣ рд╕реЗ рдХреМрди рд╕реЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдореБрдЦреНрдп рдХреЙрдкреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрдм, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде, рд╣рдо рд╢реЗрд╖ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рднреА рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдБрдЪрд╛рдИ 0, 0, 50, 50 рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдо 50x50 рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреНрд╖реЗрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред



CApp_OnRender.cpp
 #include "CApp.h" void CApp::OnRender() { CSurface::OnDraw(Surf_Display, Surf_Test, 0, 0); CSurface::OnDraw(Surf_Display, Surf_Test, 100, 100, 0, 0, 50, 50); SDL_Flip(Surf_Display); } 


рдФрд░ рдпрд╣рд╛рдБ рдореЗрд░реЗ рдЕрд╡рддрд╛рд░ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░ рдФрд░ рдмрд╛рдПрдБ рдХрд┐рдирд╛рд░реЗ рд╕реЗ 100 рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рд╣реИ:



рд╕реНрд░реЛрдд рдХреЛрдб рд▓рд┐рдВрдХ:


рд╕рднреА рдкрд╛рдареЛрдВ рдХреЗ рд▓рд┐рдВрдХ:

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


All Articles