рд▓реЗрдЦрди рд╕реА ++ рдЧреЗрдореНрд╕, рднрд╛рдЧ 1/3 - рдПрдХ рдорд┐рдиреА-рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рд┐рдЦрдирд╛

рд▓реЗрдЦрди рд╕реА ++ рдЧреЗрдореНрд╕, рднрд╛рдЧ 2/3 - рд░рд╛рдЬреНрдп-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рд╣рдо рд╕реА ++, рднрд╛рдЧ 3/3 - рд╢реИрд▓реА рдХреЗ рдХреНрд▓рд╛рд╕рд┐рдХреНрд╕ рдореЗрдВ рдЧреЗрдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ

рдирдорд╕реНрдХрд╛рд░, рд╣рдмрд╣рд╛рд░!

рд╣рдм рдкрд░ рдЧреЗрдо рдмрдирд╛рдиреЗ рдкрд░ рдХрдИ рд╕рдмрдХ рдирд╣реАрдВ рд╣реИрдВ, рдШрд░реЗрд▓реВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ?
рдореИрдВ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкрд╛рда рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЖрдкрдХреЛ рд╕рд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрд╕рдбреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реА ++ рдореЗрдВ рдЧреЗрдо рдХреИрд╕реЗ рдмрдирд╛рдПрдВ!

рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЬрд╛рдирдирд╛ рд╣реИ




рдЗрд╕ рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ?




рдЕрдЧрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдФрд░ рднреА рдПрдХреНрд╢рди рд╣реЛрдЧрд╛, рдпрд╣ рд╕рд┐рд░реНрдл рддреИрдпрд╛рд░реА рд╣реИ :)



рдХреНрдпреЛрдВ SDL?


рдореИрдВрдиреЗ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдЪреБрдирд╛ред рджрд░рдЕрд╕рд▓, рд╕рд░реНрдкрд┐рд▓ рдХреЗ 100,000 рдкреБрдирд░реНрдореБрджреНрд░рдг рдХреЗ рд▓рд┐рдП рдУрдкрдирдЬреАрдПрд▓ рдпрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рдкрд░ рдкрд╣рд▓реЗ рдкрдврд╝рд╛ рд▓реЗрдЦ рд╕реЗ рдмрд╣реБрдд рд╕рдордп рдмреАрдд рдЬрд╛рдПрдЧрд╛ред

рдЕрдм рдЖрдк рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

1.1ред рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛


рдПрд╕рдбреАрдПрд▓ рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред
рд╣рдо Visual Studio рдореЗрдВ рдПрдХ Win32 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, SDL рд▓рд┐рдмрд╛рд╕ рдФрд░ рдЗрдВрдХреНрд▓реВрдб рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рддреЛ Google рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛!)

рдорд▓реНрдЯреА-рдмрд╛рдЗрдЯ рдХреИрд░реЗрдХреНрдЯрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ-> рдЧреБрдг-> рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЧреБрдг-> рд╡рд░реНрдг рд╕реЗрдЯ-> рдорд▓реНрдЯреАрдмрд╛рдЗрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

Main.cpp рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ
#include <Windows.h> int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) { return 0; } 

рд╡рд╣ рдЕрднреА рддрдХ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╢рд╡ рдХреЗ рд░рд╛рдЬрд╛ рдФрд░ рднрдЧрд╡рд╛рди - рдЦреЗрд▓ рдХрдХреНрд╖рд╛
Game.h
 #ifndef _GAME_H_ #define _GAME_H_ class Game { private: bool run; public: Game(); int Execute(); void Exit(); }; #endif 

Game.cpp
 #include "Game.h" Game::Game() { run = true; } int Game::Execute() { while(run); return 0; } void Game::Exit() { run = false; } 


рд╣рдо рдлрд╝рд╛рдЗрд▓ Project.h рдмрдирд╛рддреЗ рд╣реИрдВ, рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛
 #ifndef _PROJECT_H_ #define _PROJECT_H_ #include <Windows.h> #include "Game.h" #endif 


рдореБрдЦреНрдп рдмрджрд▓реЗрдВ
 #include "Project.h" int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) { Game game; return game.Execute(); } 


рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХрд┐рд╕реА рддрд░рд╣ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВред

1.2ред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕


рд╣рдо рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдФрд░ рдЫрд╡рд┐ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2 рдХрдХреНрд╖рд╛рдПрдВ - рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдмрдирд╛рддреЗ рд╣реИрдВ

Graphics.h
 #ifndef _GRAPHICS_H_ #define _GRAPHICS_H_ #include "Project.h" #include "Image.h" class Image; class Graphics { private: SDL_Surface* Screen; public: Graphics(int width, int height); Image* NewImage(char* file); Image* NewImage(char* file, int r, int g, int b); bool DrawImage(Image* img, int x, int y); bool DrawImage(Image* img, int x, int y, int startX, int startY, int endX, int endY); void Flip(); }; #endif 


Image.h
 #ifndef _IMAGE_H #define _IMAGE_H #include "Project.h" class Image { private: SDL_Surface* surf; public: friend class Graphics; int GetWidth(); int GetHeight(); }; #endif 


Project.h рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ
 #ifndef _PROJECT_H_ #define _PROJECT_H_ #pragma comment(lib,"SDL.lib") #include <Windows.h> #include <SDL.h> #include "Game.h" #include "Graphics.h" #include "Image.h" #endif 


SDL_Surface - рдЫрд╡рд┐ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SDL рдХрд╛ рдПрдХ рд╡рд░реНрдЧ
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
NewImage - рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2 рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рд╕рд┐рд░реНрдл рддрд╕реНрд╡реАрд░ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЙрд╕рдХреЗ рдмрд╛рдж рддрд╕реНрд╡реАрд░ рдХреЛ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рднреА рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЪрд┐рддреНрд░ рдореЗрдВ рдПрдХ рд▓рд╛рд▓ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╣реИ, рддреЛ рдЖрд░ = 255, рдЬреА = 0, рдмреА = 0 рджрд░реНрдЬ рдХрд░реЗрдВ
DrawImage - рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА 2 рд╡рд┐рдХрд▓реНрдкред рдкрд╣рд▓рд╛ рдЪрд┐рддреНрд░ рдкреВрд░рд╛ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдЪрд┐рддреНрд░ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рднрд╛рдЧ рд╣реИред startX, startY - рдЪрд┐рддреНрд░ рдХреЗ рднрд╛рдЧ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХред endX, endY - рдЫрд╡рд┐ рднрд╛рдЧ рдХреЗ рдЕрдВрдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХред рдпрджрд┐ рдЪрд┐рддреНрд░ рдПрдЯрд▓рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдбреНрд░рд╛рдЗрдВрдЧ рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдПрдЯрд▓рд╕ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЫрд╡рд┐
(рдЫрд╡рд┐ interesnoe.info рд╡реЗрдм рд╕рдВрд╕рд╛рдзрди рд╕реЗ рд▓реА рдЧрдИ рд╣реИ)

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

Graphics.cpp
 #include "Graphics.h" Graphics::Graphics(int width, int height) { SDL_Init(SDL_INIT_EVERYTHING); Screen = SDL_SetVideoMode(width,height,32,SDL_HWSURFACE|SDL_DOUBLEBUF); } Image* Graphics::NewImage(char* file) { Image* image = new Image(); image->surf = SDL_DisplayFormat(SDL_LoadBMP(file)); return image; } Image* Graphics::NewImage(char* file, int r, int g, int b) { Image* image = new Image(); image->surf = SDL_DisplayFormat(SDL_LoadBMP(file)); SDL_SetColorKey(image->surf, SDL_SRCCOLORKEY | SDL_RLEACCEL, SDL_MapRGB(image->surf->format, r, g, b)); return image; } bool Graphics::DrawImage(Image* img, int x, int y) { if(Screen == NULL || img->surf == NULL) return false; SDL_Rect Area; Area.x = x; Area.y = y; SDL_BlitSurface(img->surf, NULL, Screen, &Area); return true; } bool Graphics::DrawImage(Image* img, int x, int y, int startX, int startY, int endX, int endY) { if(Screen == NULL || img->surf == NULL) return false; SDL_Rect Area; Area.x = x; Area.y = y; SDL_Rect SrcArea; SrcArea.x = startX; SrcArea.y = startY; SrcArea.w = endX; SrcArea.h = endY; SDL_BlitSurface(img->surf, &SrcArea, Screen, &Area); return true; } void Graphics::Flip() { SDL_Flip(Screen); SDL_FillRect(Screen,NULL, 0x000000); } 

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

Image.cpp
 #include "Image.h" int Image::GetWidth() { return surf->w; } int Image::GetHeight() { return surf->h; } 

рдирд╣реАрдВ, рдЖрдк рд╕рдм рдХреБрдЫ рд╕рд╣реА рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рдлрд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП :)

Game.h, Game.cpp рдФрд░ main.cpp рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
Game.h
 #ifndef _GAME_H_ #define _GAME_H_ #include "Project.h" class Graphics; class Game { private: bool run; Graphics* graphics; public: Game(); int Execute(int width, int height); void Exit(); }; #endif 

рдпрд╣рд╛рдВ рд╣рдо рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдПрдХреНрд╕рдХреНрдпреВрдЯ рдореЗрдВ рд╣рдо рдПрдХ рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ

Game.cpp
 #include "Game.h" Game::Game() { run = true; } int Game::Execute(int width, int height) { graphics = new Graphics(width,height); while(run); SDL_Quit(); return 0; } void Game::Exit() { run = false; } 


рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ, рдмрд╕ SDL_Quit рдлрд╝рдВрдХреНрд╢рди рдХреЛ SDL рдХреЛ рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВ

main.cpp
 #include "Project.h" int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) { Game game; return game.Execute(500,350); } 

рдпрд╣рд╛рдВ рд╣рдо 500 рд╕реЗ 350 рддрдХ рдХреА рд╕реНрдХреНрд░реАрди рдорд╛рдкрддреЗ рд╣реИрдВред

1.3ред рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐


рд╣рдореЗрдВ рдХреАрдмреЛрд░реНрдб рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

Input.h рдмрдирд╛рдПрдБ
 #ifndef _INPUT_H_ #define _INPUT_H_ #include "Project.h" class Input { private: SDL_Event evt; public: void Update(); bool IsMouseButtonDown(byte key); bool IsMouseButtonUp(byte key); POINT GetButtonDownCoords(); bool IsKeyDown(byte key); bool IsKeyUp(byte key); byte GetPressedKey(); bool IsExit(); }; #endif 

SDL_Event рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХрд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдЗрдирдкреБрдЯ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рд░ рдЪрдХреНрд░ рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рди рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ
рдиреАрдЪреЗ рдРрд╕реЗ рддрд░реАрдХреЗ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реБрдЪрд┐ рдХреЗ рдирд╣реАрдВ рд╣реИрдВред рдиреЛрдЯ: рдбрд╛рдЙрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рддрдм рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХреБрдВрдЬреА рдХреЛ рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рдФрд░ рдЬрдм рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рд╕рд╛рдеред

Input.cpp
 #include "Input.h" void Input::Update() { while(SDL_PollEvent(&evt)); } bool Input::IsMouseButtonDown(byte key) { if(evt.type == SDL_MOUSEBUTTONDOWN) if(evt.button.button == key) return true; return false; } bool Input::IsMouseButtonUp(byte key) { if(evt.type == SDL_MOUSEBUTTONUP) if(evt.button.button == key) return true; return false; } POINT Input::GetButtonDownCoords() { POINT point; point.x = evt.button.x; point.y = evt.button.y; return point; } bool Input::IsKeyDown(byte key) { return (evt.type == SDL_KEYDOWN && evt.key.keysym.sym == key); } bool Input::IsKeyUp(byte key) { return (evt.type == SDL_KEYUP && evt.key.keysym.sym == key); } byte Input::GetPressedKey() { return evt.key.keysym.sym; } bool Input::IsExit() { return (evt.type == SDL_QUIT); } 

рдпрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреЗ рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдИрд╡реЗрдВрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЙрд╕рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рд╣рдо Game.h рдФрд░ Game.cpp рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ
 #ifndef _GAME_H_ #define _GAME_H_ #include "Project.h" #include "Graphics.h" class Graphics; #include "Input.h" class Input; class Game { private: bool run; Graphics* graphics; Input* input; public: Game(); int Execute(int width, int height); Graphics* GetGraphics(); Input* GetInput(); void Exit(); }; #endif 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рдЗрдирдкреБрдЯ рдореЗрдВ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдЬреЛрдбрд╝рд╛ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдФрд░ рдЗрдирдкреБрдЯ рд░рд┐рдЯрд░реНрди рдХреЗ рддрд░реАрдХреЗ рдмрдирд╛рдП

Game.cpp
 #include "Game.h" Game::Game() { run = true; } int Game::Execute(int width, int height) { graphics = new Graphics(width,height); input = new Input(); while(run) { input->Update(); } delete graphics; delete input; SDL_Quit(); return 0; } Graphics* Game::GetGraphics() { return graphics; } Input* Game::GetInput() { return input; } void Game::Exit() { run = false; } 


1.4ред рдкрд░рд┐рдгрд╛рдо


рдпрд╣ рдкрд╣рд▓рд╛ рдкрд╛рда рдерд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдП рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдмрдзрд╛рдИ рджреЗрддрд╛ рд╣реВрдВ! рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реЛрдЧрд╛ :) рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдж рдХреЗ рдкрд╛рдареЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ!

рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреАрдПрдо рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рд╣рдм рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╢реБрдн рд╣реИрдВ, рддреЛ рдИрдореЗрд▓ рдкрд░ рд▓рд┐рдЦреЗрдВ

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


All Articles