Разработка программы-игры «Змея» на языке С++ с использованием функций WinAPI, страница 6

Пища в игре представлена спелыми красными яблоками в стиле эмблемы компании Apple, но они реализованы с градиентной заливкой.

В соответствии с описанием элементов игры они выделены в разные классы со своими конструкторами, деструкторами и методами, а также свойств, характеризующих данный объект. Так в игре были выделены следующие классы:

·  Класс яблока

class CApple

{

private:

    CBuffer *Self;

public:

    FPoint Pos;

    CApple(HWND hWnd);

    void Resize(HWND hWnd);

    void Replace();

    void DrawTo(HDC hDC);

    ~CApple();

};

·  Класс змеи

class CSnake

{

private:

    int PhaseInc;

    int Phase;

    void MoveHead(HWND hWnd);

public:

    SNode Nodes[MAX_SNAKE_SIZE];

    _timeb LastMove;

    SHead Head;

    int Delight;

    int Length;

    CSnake();

    void Resize(HWND hWnd);

    void Move(HWND hWnd);

    void Grow(HWND hWnd);

    void DrawTo(HDC hDC);

    ~CSnake();

};

·  Класс уровня, который объединяет поле, и пни

class CLevel

{

private:

    CBuffer *Self;

public:

    FPoint Stubs[MAX_LEVEL_COUNT*2];

    int GetStubSize(int Num);

    int PrevLevelDelight;

    int NextLevelDelight;

    int Number;

    CLevel(HWND hWnd);

    void Resize(HWND hWnd);

    void Next(HWND hWnd);

    void DrawTo(HDC hDC);

    ~CLevel();

};

У всех этих классов кроме методов, свойственных их моделям, реализованы  следующие методы:

    void Resize(HWND hWnd);

    void DrawTo(HDC hDC);

Они реализует для каждого класса следующие возможности: перерисовка изображения(при необходимости) и изменении состояния объекта при его изменении, и вывод полученного изображения в указанный контекст устройства соответственно.

Для формирования изображений, формируемых выше описанными классами, и их объединения с HUD, были созданы:

·  Класс буфера, где и происходит формирование изображения