Класс CUnitAnimation

Также как и класс способов передвижения, класс анимации помогает организовать ваши подразделения. Я использую класс с именем CUnitAnimation. Вот как выглядит его заголовок:

const int UNITMANAGER_MAXOWNERS = 4;
class CUnitAnimation
{
public:
char m_szName[64];
char m_szBitmapPrefix[64];
int m_iNumStillFrames;
int m_iNumMoveFrames;
int m_iNumAttackFrames;
int m_iNumDieFrames;
int m_iType;
int m_iStartStillFrames;
int m_iStartMoveFrames;
int m_iStartAttackFrames;
int m_iStartDieFrames;
// Данные текстуры
CTexture *m_Textures;
int m_iTotalTextures;
// Указатель на устройство Direct3D для загрузки текстур
LPDIRECT3DDEVICE9 m_pd3dDevice;

CUnitAnimation();
~CUnitAnimation();
virtual void vReset(void);
virtual void vSetRenderDevice(LPDIRECT3DDEVICE9 pd3d);
virtual void vLoadTextures(void);
};

Ух ты, этот класс действительно отличается от предыдущих! Верно, класс анимации более сложный, чем его предшественники. Данный класс содержит графические изображения подразделения, а также информацию, необходимую для его анимации.

Изображения подразделения хранятся в массиве объектов класса CTexture. Класс CTexture — это отдельный класс, который я создал в данном приложении для хранения графической инфоримации. Мы обсудим его в этой главе чуть позже.

Члены данных класса CUnitAnimation
В классе анимации есть несколько интересных членов данных. Первые из них хранят количество графическх кадров в различных анимационных последовательностях подразделения. Существует четыре типа анимации: ожидание, движение, атака и гибель.