рдЗрд╕ рдкрд╛рда рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ Entitiesред рд╕рднреА рдЦреЗрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП "рдПрдВрдЯрд┐рдЯреАрдЬ" рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЦреЗрд▓ рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рд░реВрдк рдореЗрдВ рдпрд╛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдФрд░ рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рд░реВрдк рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреА рд╣реИрдВред "рд╕рдВрд╕реНрдерд╛рдУрдВ" рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд░рд╛рдХреНрд╖рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХрдард┐рди рд░рд╛рд╕реНрддреЗ рдкрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЦрдЬрд╛рдирд╛ рдЪреЗрд╕реНрдЯ рдЬреЛ рдЖрдк рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд┐рдХреНрдХреЗ рдЬреЛ рдЖрдк рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рджреАрд╡рд╛рд░реЗрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдорд╛рд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдХреА рдХреЛрдИ рднреА рд╡рд╕реНрддреБ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рддрд░рд╣ рдЪрд▓рддреА рд╣реИ, рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рджрд┐рдЦрд╛рддреА рд╣реИ, рдЗрди "рд╕рдВрд╕реНрдерд╛рдУрдВ" рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдпрд╣ рдХрд╣рддреЗ рд╣реИрдВ: рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХрд╛ "рдорд╛рдЙрдВрдЯреЗрди" рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдХрд╛рд░реНрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЕрднреА рднреА рдЦрдбрд╝рд╛ рд╣реИ рдФрд░ рдмрд╕ рдореМрдЬреВрдж рд╣реИред рдпрд╣ "рд╕рд╛рд░" рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ "рдорд╛рдЙрдВрдЯреЗрди" рдЪрд╛рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЕрдкрдиреЗ рдирд╛рдпрдХ рдкрд░ рдЙрддрд░реЗрдВ (рдмрд╕ рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░реЗрдВ), рдлрд┐рд░ рдЗрд╕реЗ "рдЗрдХрд╛рдИ" рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд рд╣реИред рд▓реЗрдЦрдХ рдиреЗ рдХрд╣рд╛рдиреА рдХреЛ 3 рд▓реЗрдЦреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рдФрд░ рдореИрдВ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд╛рда рдФрд░ рдХреЛрдб рд╣реИ, рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ)ред рдЗрд╕ рдкрд╛рда рдореЗрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реЛрдЧрд╛ - рд╣рдо "рд╕рдВрд╕реНрдерд╛рдУрдВ" рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред рдЕрдЧрд▓реЗ рдкрд╛рда рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдЯрд╛рдЗрд▓рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдХреНрд╢рд╛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдареАрдХ рд╣реИ, рдЪрдХреНрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ - рдЦреЗрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреА рдмрд╛рддрдЪреАрдд рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг (рдЕрдиреНрдп "рд╕рдВрд╕реНрдерд╛рдУрдВ" рдФрд░ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде "рд╕рдВрд╕реНрдерд╛рдУрдВ" рдХреЗ рдЪреМрд░рд╛рд╣реЛрдВ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдЯрдХрд░рд╛рд╡) рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг)ред
рдЗрд╕ рдмреАрдЪ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдмрдирд╛рдПрдБ, 2 рдлрд╝рд╛рдЗрд▓реЗрдВ
CEntity.cpp рдФрд░
CEntity.h рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде:
CEntity.h#include <vector> #include "CAnimation.h" #include "CSurface.h" class CEntity { public: static std::vector<CEntity*> EntityList; protected: CAnimation Anim_Control; SDL_Surface* Surf_Entity; public: float X; float Y; int Width; int Height; int AnimState; public: CEntity(); virtual ~CEntity(); public: virtual bool OnLoad(char* File, int Width, int Height, int MaxFrames); virtual void OnLoop(); virtual void OnRender(SDL_Surface* Surf_Display); virtual void OnCleanup(); };
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рддрджрдиреБрд╕рд╛рд░:
CEntity.cpp #include "CEntity.h" std::vector<CEntity*> CEntity::EntityList; CEntity::CEntity() { Surf_Entity = NULL; X = Y = 0.0f; Width = Height = 0; AnimState = 0; } CEntity::~CEntity() { } bool CEntity::OnLoad(char* File, int Width, int Height, int MaxFrames) { if((Surf_Entity = CSurface::OnLoad(File)) == NULL) { return false; } CSurface::Transparent(Surf_Entity, 255, 0, 255); this->Width = Width; this->Height = Height; Anim_Control.MaxFrames = MaxFrames; return true; } void CEntity::OnLoop() { Anim_Control.OnAnimate(); } void CEntity::OnRender(SDL_Surface* Surf_Display) { if(Surf_Entity == NULL || Surf_Display == NULL) return; CSurface::OnDraw(Surf_Display, Surf_Entity, X, Y, AnimState * Width, Anim_Control.GetCurrentFrame() * Height, Width, Height); } void CEntity::OnCleanup() { if(Surf_Entity) { SDL_FreeSurface(Surf_Entity); } Surf_Entity = NULL; }
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдореЗрд░реЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ (рдореЗрд░реЗ рдФрд░ рдЖрдкрдХреЗ) рддрд░реАрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП
CApp 5 рд╕реЗ
рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд┐рдпрд╛ (рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рдореИрдВ рдЕрдЧрд▓реЗ рдкрд╛рда рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛)ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╣рдо "рдЕрдирд╛рдЬ рдХреЛ рдЪрдл рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд╕рдХреЗрдВрдЧреЗ" рдФрд░ "рдЗрдХрд╛рдИрдпреЛрдВ" рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкрд╛рд░рджрд░реНрд╢реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХреЗрдВрдЧреЗ рдФрд░ рдореБрдЦреНрдпрддрдГ (
рд╕реАрдПрдкреАрдкреА ) рд╡рд░реНрдЧ рдореЗрдВ рдвреЗрд░ рдореЗрдВ
рднрд░ рдЬрд╛рдПрдВрдЧреЗ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдВрдЯрд┐рдЯреАрдЬ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕реНрдЯреЗрдЯрд┐рдХ рд╡реЗрдХреНрдЯрд░
рдПрдВрдЯрд┐рдЯреА рд▓рд┐рд╕реНрдЯ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ? рдпрд╣ рд╣рдорд╛рд░реЗ рдЦреЗрд▓ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░
CEntity :: EntityList рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ рд╕реБрд▓рдн рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдерд┐рд░ рд╣реИред рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ
CEntity рдореЗрдВ
EntityList рдХреА рдШреЛрд╖рдгрд╛ рдХреА, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ
рдмрдЪрд╛рдПрдЧрд╛ ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдб рдХреА рдПрдВрдЯрд┐рдЯреАрдЬ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд, рдЬрдм рд╕реАрдПрдордПрдкреА рд╡рд░реНрдЧ рдХреЛ CEntity рдХреЗ рд╕рджрд╕реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ CEntity рдХреЛ CMap рдХреЗ рд╕рджрд╕реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣рд╛рдВ рдореБрдЭреЗ рдЦреБрдж рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рд▓реЗрдЦрдХ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ), рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛ред
рддреЛ, рдпрд╣ рд╡реЗрдХреНрдЯрд░ рд╣рдорд╛рд░реЗ рд╕рднреА рдЦреЗрд▓ "рдПрдВрдЯрд┐рдЯреАрдЬрд╝" рдХреЛ рдЙрдирдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ (рднрд╡рд┐рд╖реНрдп рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд╕рд╛рде, рдЬрдм рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЛ CEntity рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛)ред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдПрдХ
рдореЗрдЧрд╛рдореИрди рдЧреЗрдо рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕
рд╕реАрдПрдордИрдПрдЬреАрдПрдПрдордПрдореИрди рд╡рд░реНрдЧ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд┐
рд╕реАрдИрдПрдПрдирдЯреА рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛
рд╣реЛрдЧрд╛ ред рдФрд░ рдмрд╣реБрд░реВрдкрддрд╛ рдХреА рдорджрдж рд╕реЗ, рд╣рдо рдПрдХ
EntityList рдореЗрдВ
CMegaMan рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЖрднрд╛рд╕реА рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛, рдФрд░ рд╡рд░реНрдЧ рдХреЗ рдХреБрдЫ рд╕рджрд╕реНрдп рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИрдВред
рд╣рдорд╛рд░реЗ "рдПрдВрдЯрд┐рдЯреА" рдореЗрдВ рд╕рднреА "рдПрдВрдЯрд┐рдЯреАрдЬрд╝" рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ - рдЪрд┐рддреНрд░ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рдЖрдпрд╛рдо, рд╕рддрд╣ред рдЗрд╕ рдЫрд╡рд┐ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рднреА рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдХреНрд╖реЗрддреНрд░ рд╣реИред рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░: рдЗрд╕ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдбрд░реЛ рдордд, рдпрд╣ рдПрдХ рдбрд╛рдХреНрдпреБрдореЗрдВрдЯ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдкрддреНрдерд░ рд╕реЗ рдирдХреНрдХрд╛рд╢реАрджрд╛рд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдмрджрд▓реЗрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдХреЛрдИ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореВрд▓ рд╣рдореЗрд╢рд╛ рдпрд╣рд╛рдБ рд╣реИ, рдпрд╣ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИ!
OnLoop рдкрджреНрдзрддрд┐ рдореЗрдВ, рд╣рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдЧрдгрдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡рд╣рд╛рдВ рдХреЗрд╡рд▓ рдПрдиреАрдореЗрд╢рди рдлреНрд░реЗрдо рдХреА рдЧрдгрдирд╛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓
рдореИрдХреНрд╕рдлреНрд░реЗрдо рдЪрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдЖрдЗрдП
OnRender рдкрд░
рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред рд╕реНрдХреНрд░реАрди рдкрд░ рдмреЗрд╡рдХреВрдл рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА рд╕рддрд╣ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рджрд░реНрдЬ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╣рдо "рд╕рд╛рд░" рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣, рдЖрдк рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ "рд╕рдВрд╕реНрдерд╛рдУрдВ" рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рднреА рд╕реБрдкрд░рдорд┐рд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕
OnCleanup , рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рд╕рдлрд╛рдИ рд╕рдм рдХреБрдЫ рдФрд░ рд╕рдм рдХреБрдЫ рд╣реИ (Purgatory рдореЗрд░реЗ рд▓рд┐рдП рд░реЛ рд░рд╣реА рд╣реИ), рдПрдХ рд╕реНрдореГрддрд┐ рдореБрдХреНрддрд┐рджрд╛рддрд╛, рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЧреГрд╣рдгреАред
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реА рдХрд╣рд╛ рдерд╛ - рд╣рдордиреЗ "рдПрдВрдЯрд┐рдЯреАрдЬ" рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛ рдХрд╛ рдореВрд▓ рдврд╛рдВрдЪрд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░, рдХреНрд░реЛрдХрд┐рдВрдЧ рдирд╣реАрдВ, рдореИрдВ рдпрд╣ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЕрдм рддрдХ рдпрд╣ рд░рд╛рдХреНрд╖рд╕ рдмрд╣реБрдд рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдЕрдЧрд▓реЗ рдкрд╛рдареЛрдВ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛)ред рд▓реЗрдХрд┐рди рд╣рдо рдЙрд╕реЗ рдЕрднреА рдХрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ! рдЦреЛрд▓рдиреЗ
CApp.h рдФрд░ "Entities" рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдЬреЛрдбрд╝реЗрдВ:
CApp_OnInit.cpp рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдХрд░ рдЙрдиреНрд╣реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред (рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдЕрдВрддрд┐рдо рдкрд╛рда рд╕реЗ рдПрдХ рддрд╕реНрд╡реАрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╛ рдЗрд╕рдХреА 2 рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА):
CApp_OnInit.cpp if(Entity1.OnLoad("./entity1.bmp", 64, 64, 8) == false) { return false; } if(Entity2.OnLoad("./entity2.bmp", 64, 64, 8) == false) { return false; } Entity2.X = 100; CEntity::EntityList.push_back(&Entity1); CEntity::EntityList.push_back(&Entity2);
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдХреИрд╕реЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рд╣рдо рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдЦреЗрд▓ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ? рдЕрдм рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдереЛрдбрд╝рд╛ рдШреБрдорд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
CApp_OnLoop.cpp рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
for(int i = 0;i < CEntity::EntityList.size();i++) { if(!CEntity::EntityList[i]) continue; CEntity::EntityList[i]->OnLoop(); }
рдпрд╛рдиреА рд╣рдо "рд╡реЗрдХреНрдЯрд░" рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ "рдПрдВрдЯрд┐рдЯреА" рдХреЗ рд▓рд┐рдП
рдУрдирд▓реЛрдк рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЬрд╛рдВрдЪ рднреА рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ рдореЗрдВ рди рдЪрд▓рд╛ рдЬрд╛рдП)ред рдпрд╣
CApp_OnRender.cpp рдореЗрдВ
рд╡реИрд╕рд╛ рд╣реА
рдХрд░рддрд╛ рд╣реИ :
for(int i = 0;i < CEntity::EntityList.size();i++) { if(!CEntity::EntityList[i]) continue; CEntity::EntityList[i]->OnRender(Surf_Display); }
рд╣реИрд▓реЛ, рдкреНрд░рд┐рдп, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирдорд╕реНрддреЗ:
for(int i = 0;i < CEntity::EntityList.size();i++) { if(!CEntity::EntityList[i]) continue; CEntity::EntityList[i]->OnCleanup(); } CEntity::EntityList.clear();
рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ (
CEntity :: EntityList.clear () ) рд╣рдо "Entities" рдХреЗ рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╢реВрдиреНрдп рдХрд░рддреЗ рд╣реИрдВ ... рд╕рдВрдХрд▓рди рдХрд░реЗрдВ, рдЪрд▓рд╛рдПрдБ, рдЖрдирдВрдж рд▓реЗрдВ!
рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред
рд╕реНрд░реЛрдд рдХреЛрдб рд▓рд┐рдВрдХ:
рд╕рднреА рдкрд╛рдареЛрдВ рдХреЗ рд▓рд┐рдВрдХ: