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

рдореИрдВрдиреЗ рдЗрд╕ рд╕рд╛рдЗрдЯ рдХреЗ рдкрд╛рдареЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИрдмрд░ рдореЗрдВ рдЦреЛрдЬрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдерд╛, рдФрд░ рд╡рд╣ рднреА - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ:



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

"рд╣рдо рд╕рднреА рдиреЗ рдХрд╣реАрдВ рд╢реБрд░реБрдЖрдд рдХреА"


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

рдкреНрд░рдпреБрдХреНрдд рдЙрдкрдХрд░рдг

рдкрд╛рдареЛрдВ рдореЗрдВ, рдХреЛрдб :: рдмреНрд▓реЙрдХ (рдЗрд╕рдХреЗ рдмрд╛рдж рд╕реАрдмреА), рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GCC рдФрд░ MinGW рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдХрд╛ рдЙрдкрдпреЛрдЧ IDE рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рдЖрдИрдбреАрдИ рдФрд░ рд╕рдВрдХрд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИред рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕реАрдмреА рдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд╛рдЗрдирд░реА рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдорд┐рдиреЙрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдбрдмреНрд▓реЙрдХ -12.11рдорд┐рдВрдЧw-setup.exe ред рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭ рдЪреБрдХреЗ рд╣реИрдВ, рдореБрдЦреНрдп рдлреЛрдХрд╕ рдПрд╕рдбреАрдПрд▓ (рд╕рд┐рдВрдкрд▓ рдбрд╛рдпрд░реЗрдХреНрдЯрдореАрдбрд┐рдпрд╛ рд▓реЗрдпрд░) рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗрдВрджреНрд░рд┐рдд рд╣реЛрдЧрд╛ - 2 рдбреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рдлрд┐рд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╢рдмреНрдж рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрджреНрднреБрдд рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдЮрд╛рдд рд╣реИ), рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╢рдмреНрдж (рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореБрдЭреЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ), рд▓реЗрдЦрдХ рдХреЗ рдорд╛рдлреАрдирд╛рдореЗ рдПрд╕рдбреАрдПрд▓ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирдореВрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдЙрдмрдВрдЯреВ рдкрд░ рд╕реАрдмреА рдФрд░ рдПрд╕рдбреАрдПрд▓ рдмрдВрдбрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдереЛрдбрд╝рд╛ рдЧреИрдЧ рд▓рд┐рдЦреВрдВрдЧрд╛ред рдореИрдВ рдорд┐рдирд┐рдЧреЙрд╡ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛ (рдареАрдХ рд╣реИ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ)ред

рд╕рдорд╛рдпреЛрдЬрди

рд╡рд┐рдВрдбреЛрдЬ
  • рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рд╕рдХреНрд╖рдо MinGW рдХреЗ рд╕рд╛рде рддрд╛рдЬрд╛ CB рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, CB рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ MinGW рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ;
  • рдирд╡реАрдирддрдо SDL рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ( рдбрд╛рдЙрдирд▓реЛрдб рд╕реЗрдХреНрд╢рди рдореЗрдВ, рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗрдХреНрд╢рди, Win32 рд╕рдм-рд╕реЗрдХреНрд╢рди рдФрд░ SDL-devel-XXX-mingw32.tar.gz рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд╣рд╛рдБ XXX рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдЬрди рдирдВрдмрд░ рд╣реИ);
  • рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ (рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрд╕рдбреАрдПрд▓-рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛);
  • рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдкрд╣рд▓реЗ рдорд┐рдирдЧреЙрд╡ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
  • SDG.dll рдХреЛ MinGW рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдмрд┐рди рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдлрд╝реЛрд▓реНрдбрд░реНрд╕ C: \ Windows рдФрд░ C: \ Windows 's System32 ;
  • рд╕реАрдмреА рдЦреЛрд▓реЗрдВ, рдПрдХ рдирдпрд╛ рдЦрд╛рд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ;
  • рд╕реНрдкреЙрд▓рд░реНрд╕ рдХреЗ рдиреАрдЪреЗ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде CApp.h рдФрд░ CApp.cpp рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реЗрдВ;
  • рдореЗрдиреВ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ> рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдк , рд╕рдВрд╡рд╛рдж рдореЗрдВ рд▓рд┐рдВрдХрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЯреИрдм рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ;
  • рд▓рд┐рдВрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ, рдЬреЛрдбрд╝реЗрдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ mingw32 рджрд░реНрдЬ рдХрд░реЗрдВ; SDLmain; SDL ;
  • (рдЖрдкрдХреЛ CApp.h рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ SDL / SDL.h рдХреЗ рдмрдЬрд╛рдп SDL / SDL.h рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИрдВ)


рдЙрдмрдВрдЯреВ
  • sudo apt-get install рдХреЛрдбрдмреНрд▓реЙрдХреЛрдВ libsdl-ttf2.0-0 libsdl-ttf2.0-dev libsdl-image1.2 .2debian- рд╕рднреА libgl1-mesa-dev libglu1-mesa-dev libglut3-dev xorg-dev libtool gforth
  • рд╣рд╛рде рдЙрдард╛ рдХреЗ рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП
  • рд╕реАрдмреА рдЦреЛрд▓реЗрдВ, рдПрдХ рдирдпрд╛ рдЦрд╛рд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ;
  • рд╕реНрдкреЙрд▓рд░реНрд╕ рдХреЗ рдиреАрдЪреЗ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде CApp.h рдФрд░ CApp.cpp рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реЗрдВ;
  • рдореЗрдиреВ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ> рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдк , рд╕рдВрд╡рд╛рдж рдореЗрдВ рд▓рд┐рдВрдХрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЯреИрдм рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ;
  • рдЕрдиреНрдп рд▓рд┐рдВрдХрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ, -lSDLmain -lSDL рджрд░реНрдЬ рдХрд░реЗрдВ ;
  • (рдЖрдкрдХреЛ CApp.h рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ SDL / SDL.h рдХреЗ рдмрдЬрд╛рдп SDL / SDL.h рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИрдВ)



рд╕реНрд░реЛрдд рдХреЛрдб

CApp.h
#ifndef _CAPP_H_ #define _CAPP_H_ #include <SDL/SDL.h> class CApp { public: CApp(); int OnExecute(); }; #endif 


CApp.cpp
 #include "CApp.h" CApp::CApp() { } int CApp::OnExecute() { return 0; } int main(int argc, char* argv[]) { CApp theApp; return theApp.OnExecute(); } 



рдЦреЗрд▓ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛

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

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп
рдпрд╣ рд╕рднреА рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдмрдирд╛рд╡рдЯ, рдирдХреНрд╢реЗ, рд╡рд░реНрдг рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдСрдбрд┐рдпреЛ / рд╡реАрдбрд┐рдпреЛ) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

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

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

рд╕реНрдореГрддрд┐ рдХреА рд╕рдлрд╛рдИ
рдпрд╣ рд░реИрдо рд╕реЗ рд╕рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рдирдХреНрд╢реЗ, рдЪрд┐рддреНрд░, рдореЙрдбрд▓) рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЦреЗрд▓ рдХреЗ рд╕рд╣реА рд╕рдорд╛рдкрди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдк рд╕рдордЭреЗрдВ рдХрд┐ рдЦреЗрд▓ рдПрдХ рд╣реА рдЪрдХреНрд░ рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВред рдЗрд╕ рдЪрдХреНрд░ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдИрд╡реЗрдВрдЯреНрд╕, рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдФрд░ рдЗрдореЗрдЬ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЦреЗрд▓ рдХреА рдореВрд▓ рд╕рдВрд░рдЪрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдорд╛рдиреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:

GameLoop
 Initialize(); while(true) { Events(); Loop(); Render(); } Cleanup(); 


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

рднрд╛рдЧреЛ, рдЧрдзрд╛рдЪреЛрдЯ, рднрд╛рдЧреЛ !!!
 if(Key == LEFT) X--; if(Key == RIGHT) X++; if(Key == UP) Y--; if(Key == DOWN) Y++;//... -   ... RenderImage(DonkeyHotImage, X, Y); 


рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдПрдХ рдЪрдХреНрд░ рдореЗрдВ, рдпрд╣ рдЬрд╛рдБрдЪ рдХреА рдЧрдИ рдереА рдХрд┐ рдХреНрдпрд╛ LEFT, RIGHT, рдЖрджрд┐ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдерд╛, рддреЛ рд╣рдо X рдпрд╛ Y рд╕рдордиреНрд╡рдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЪрд░ рдХреЛ рдШрдЯрд╛рддреЗ рдпрд╛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдЦреЗрд▓ 30 рддрдЦреНрддреЗ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рджреВрд╕рд░рд╛, рдФрд░ рд╣рдо LEFT рдХреБрдВрдЬреА рджрдмрд╛рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░рд╛ DonkeyHot рдмрд╛рдИрдВ рдУрд░ 30 рдкрд┐рдХреНрд╕реЗрд▓ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреА рдЧрддрд┐ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗрдЧрд╛ (FPS рдпрд╣рд╛рдБ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ )ред рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЧреЗрдо рдЪрдХреНрд░ рдХреЗ рдЙрдкрдХрд░рдг рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ, рддреЛ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ - рдЖрдк рдЬрд▓реНрдж рд╣реА рд╕рдордЭ рдЬрд╛рдПрдВрдЧреЗред

рд╕реАрдмреА рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рджреВрд░ рдЪрд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдкрд╛рдиреА рдмрд╣ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЦреЗрд▓ рдЪрдХреНрд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рд▓рдЧрд╛ рд╣реИред рдпрд╣ рдЙрд╕ рдкрд░ рд▓реМрдЯрдиреЗ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:

CApp_OnInit.cpp
 #include "CApp.h" bool CApp::OnInit() { return true; } 


CApp_OnEvent.cpp
 #include "CApp.h" void CApp::OnEvent(SDL_Event* Event) { } 


CApp_OnLoop.cpp
 #include "CApp.h" void CApp::OnLoop() { } 


CApp_OnRender.cpp
 #include "CApp.h" void CApp::OnRender() { } 


CApp_OnCleanup.cpp
 #include "CApp.h" void CApp::OnCleanup() { } 



CApp.h рдФрд░ CApp.cpp рдЦреЛрд▓реЗрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдПрдБ:

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


CApp.cpp
 #include "CApp.h" CApp::CApp() { Running = true; } int CApp::OnExecute() { if(OnInit() == false) { return -1; } SDL_Event Event; while(Running) { while(SDL_PollEvent(&Event)) { OnEvent(&Event); } OnLoop(); OnRender(); } OnCleanup(); return 0; } int main(int argc, char* argv[]) { CApp theApp; return theApp.OnExecute(); } 


рдЖрдк рдХреБрдЫ рдирдП рдЪрд░ рдФрд░ рддрд░реАрдХреЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЕрдкрдиреЗ рдЦреЗрд▓ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрд░рдВрднреАрдХрд░рдг рдирд╣реАрдВ рд╣реБрдЖ, рддреЛ -1 (рддреНрд░реБрдЯрд┐ рдХреЛрдб) рд▓реМрдЯрд╛рдПрдВ, рдЬрд┐рд╕рд╕реЗ рдЦреЗрд▓ рдкреВрд░рд╛ рд╣реЛ рд╕рдХреЗред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рд╣рдо рдЦреЗрд▓ рдЪрдХреНрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВред рдЧреЗрдо рд▓реВрдк рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SDL_PollEvent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд░ Onventvent рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░, рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OnLoop рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдкрдирд╛ рдЧреЗрдо рдбреНрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рдЪрдХреНрд░ рдХреЛ рддрдм рддрдХ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рд╕рдВрджреЗрд╢ рди рд╣реЛ, рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧреЗрдо рдХреЛ рдХреНрд╡рд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрджреЗрд╢ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдХреНрд░реЙрд╕ рдпрд╛ рдИрдПрд╕рд╕реА рдХреБрдВрдЬреА рджрдмрд╛рдпрд╛) рд╣рдо рдЕрдкрдиреЗ рдЦреЗрд▓ рдХреЗ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдирдХреНрд▓реАрдирдЕрдк рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред
рдЕрдм, SDL_Event рдФрд░ SDL_PollEvent рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ ред рдкрд╣рд▓реА рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рджреВрд╕рд░рд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛ред рдПрдХ рдХрддрд╛рд░ рдореЗрдВ рдХрд┐рддрдиреЗ рднреА рд╕рдВрджреЗрд╢ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд╣рдо рдЙрди рд╕рднреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдорд╛рдЙрд╕ рдХреЛ рд╣рд┐рд▓рд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдСрдирд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдЪрд▓ рд░рд╣рд╛ рд╣реИ ред рдПрд╕рдбреАрдПрд▓ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдФрд░ рджреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рд░рдЦреЗрдЧрд╛ , рдПрдХ рдкреНрд░рддрд┐ рдХреБрдВрдЬреА рдФрд░ рдПрдХ рдорд╛рдЙрд╕ рдЪрд╛рд▓ред рд╣рдо рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ SDL_PollEvent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрддрд╛рд░ рд╕реЗ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ OnEvent рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ , рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрдм рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдХреЛрдИ рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ SDL_PollEvent рдЧрд▓рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд▓реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЧреЗ рд╣рдо рдЪрд▓рддреЗ рд╣реБрдП рдЪрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╣ рдореБрдЦреНрдп рдЦреЗрд▓ рдЪрдХреНрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬрдм рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ , рддреЛ рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдВрдЧреЗ, рдФрд░ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдЧреНрдЬрд┐рдЯ рдлрдВрдХреНрд╢рди рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░ рджреЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ESC рдХреБрдВрдЬреА рджрдмрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдЪрд░ рдХреЛ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЦреЗрд▓ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИред
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдм рдЬрдм рд╕рдм рдХреБрдЫ рд╕реЗрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдЧреЗрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдВрдбреЛ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред CApp.h рдЦреЛрд▓реЗрдВ рдФрд░ SDL_Surface рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЪрд░ рдЬреЛрдбрд╝реЗрдВред рд╕рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

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


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

рдЕрдм, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕рддрд╣ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП 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; } return true; } 


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдордиреЗ рдПрд╕рдбреАрдПрд▓ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдерд╛, рддрд╛рдХрд┐ рдЕрдм рд╣рдо рдЗрд╕рдХреЗ рдлрдВрдХреНрд╢рдиреНрд╕ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХреЗрдВред SDL_INIT_EVERYTHING рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рднреА рд╕рдмрд╕рд┐рд╕реНрдЯрдореЛрдВ рдХрд╛ рдЖрд░рдореНрднрд┐рдХрд░рдг (рдЕрдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SDL_INIT_AUDIO , SDL_INIT_VIDEO , рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЙрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ)ред рдЕрдЧрд▓рд╛ рдлрд╝рдВрдХреНрд╢рди, SDL_SetVideoMode , рд╣рдорд╛рд░реА рд╡рд┐рдВрдбреЛ рдФрд░ рдмреЗрд╕ рд╕рддрд╣ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ 4 рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ: рдЦрд┐рдбрд╝рдХреА рдХреА рдЪреМрдбрд╝рд╛рдИ, рдЦрд┐рдбрд╝рдХреА рдХреА рдКрдВрдЪрд╛рдИ, рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ (16 рдпрд╛ 32 рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ), рдФрд░ "" | "рдСрдкрд░реЗрдЯрд░" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реВрдЪреАрдмрджреНрдз рдЭрдВрдбреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рдЕрдиреНрдп рдЭрдВрдбреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдирдореЗрдВ рд╕реЗ рдХрд╛рдлреА рд╣реИрдВред рдкрд╣рд▓рд╛ рдзреНрд╡рдЬ SDL рдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЗрд╕реЗ рдбрдмрд▓ рдмрдлрд╝рд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ (рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдпрджрд┐ рдЖрдк рдЕрдВрдд рдореЗрдВ рдлрд╝реНрд▓рд┐рдХрд░рд┐рдВрдЧ рд╕реНрдХреНрд░реАрди рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред рдПрдХ рдФрд░ рдЭрдВрдбрд╛ рдЬреЛ рдЕрдм рдЖрдкрдХреА рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣ SDL_FULLSCREEN рд╣реИ ; рдпрд╣ рд╡рд┐рдВрдбреЛ рдХреЛ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЛрдб рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИред

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

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


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

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


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

CApp_OnEvent.cpp
 #include "CApp.h" void CApp::OnEvent(SDL_Event* Event) { if(Event->type == SDL_QUIT) { Running = false; } } 


SDL_Event рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЯреВрдЯ рдЧрдИ рд╣реИред рдпреЗ рдкреНрд░рдХрд╛рд░ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рд╕реЗ рд▓реЗрдХрд░ рдорд╛рдЙрд╕ рдЖрдВрджреЛрд▓рдиреЛрдВ рддрдХ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдШрдЯрдирд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред CApp_OnEvent.cpp рдореЗрдВ рд╣рдо рд╕рдорд╛рдкрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдорд╛рд░реА рд╡рд┐рдВрдбреЛ рдХреЗ рд╢реАрд░реНрд╖рдХ рдмрд╛рд░ рдореЗрдВ рдХреНрд░реЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ) рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд░рдирд┐рдВрдЧ рдЪрд░ рдХреЛ рдЭреВрдард╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЦреЗрд▓ рдЕрдкрдиреЗ рдореБрдЦреНрдп рд▓реВрдк рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЧреЗрдВрдж рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдореЛрдордмрддреНрддрд┐рдпрд╛рдВ рдмрд╛рд╣рд░ рдЬрд╛рддреА рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛рдареЛрдВ рдореЗрдВ, рд╣рдо рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦреЗрдВрдЧреЗред
рд╡рд╣ рд╕рдм рд╣реИ! рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдврд╛рдВрдЪрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реАрдмреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, Google рдХреЛ рдереЛрдбрд╝реА рд╕реА рд╣рд┐рдЪрдХрд┐рдЪрд╛рд╣рдЯ рди рдХрд░реЗрдВ (рдорджрдж рдореЗрдВ рдлрд╝рд╛рдЗрд▓: рдлрд╝рд╛рдЗрд▓-> рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ ...)ред
рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдкрд╛рда рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реАрдЦрд╛ рд╣реИ, рддреЛ рд╕рддрд╣реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдХреЛ рдЬрд╛рд░реА рд░рдЦреЗрдВред

PS рдПрдХ рдФрд░ рдмрд┐рдВрджреБ, рдПрдХ рджреЛрд╕реНрдд рдиреЗ Fedcomp рдХреЗ рдмрд╛рдж рдкреВрдЫрд╛, рдореИрдВ рднреА рдЙрддреНрд╕реБрдХ рдерд╛ рдХрд┐ рд▓реЗрдЦрдХ рдиреЗ рдЦреЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛?
рдЗрд╕ рдорд╛рдорд▓реЗ рдкрд░ рдореЗрд░реА рд░рд╛рдп: рдЦреЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрдХрд▓реНрдк рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕рддрд╣ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдЧрдард┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдареАрдХ рд╣реИ, рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдХрд╛рд░реНрдпред
рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

UPD 0ред

рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рд▓рд┐рдВрдХ (* рдирд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреБрдХреНрдд)



рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдоред

UPD 1ред

рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЖрдк CApp.cpp рдореЗрдВ SDL_PollEvent рдХреЗ рдмрдЬрд╛рдп SDL_WaitEvent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдЖрдкрдХреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рддреБрд░рдВрдд рдЬрд╡рд╛рдм рджреЗрдиреЗ рдФрд░ рдЦреЗрд▓ рдЪрдХреНрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдореЗрдВ рди рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

UPD 2ред

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

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


All Articles