Курсовая работа по основам программирования. Игра "Паровоз" — страница 2

  • Просмотров 2784
  • Скачиваний 263
  • Размер файла 21
    Кб

активным является зелёный цвет, он продолжает своё движение. В противном случае, паровоз останавливается. При достижении правой стенки, паровоз появляется у левой стенки, а активным цветом светофора становится жёлтый цвет. Из верхней части паровоза постоянно поднимаются в верхнюю часть окна окружности, представляющие собой клубни дыма, которые увеличиваются при подъёме. 2. Описание программы . 2.1. Метод решения задачи .

Программа выполнена в стиле объектно-ориентированного программирования, использованна библиотека MFC. Сама программа - приложение Windows. Для вывода графических объектов используются функции: Elliplse, Rectangle. Программой обрабатываются события от таймера, нажатия клавишь на клавиатуре, выбра соответствующих пунктов меню, а также событие WM_PAINT для перерисовки рабочей области. 2.2. Описание используемых классов, структур и функций. 2.2.1. CApp

- класс приложения . CApp - класс приложения, порождается классом CWinApp библиотеки MFC обеспечивает инициализацию , выполнение и завершение Windows программы : регистрирует , создаёт и отображает основное окно приложения . Член- функции класса CApp : InitInstance – виртуальная функция, переопределяется в классе CApp 2.2.2. CМainWnd- класс главного окна . CMainWnd - класс главного окна приложения , наследуется из класса CFrameWnd библиотеки MFC .) Член - данные класса

СMainWnd : CRect wnd; /*размер окна*/ CRect kol1,kol2,korp,kr,temp; /*прямоугольники*/ CRect svet,ball1,ball2,ball3;/*прямоугольники*/ CBrush br1[3],br2; /*кисти*/ CBrush sv[4]; /*цвета светофора*/ CRect noga; /*нога светофора*/ CRect balls[5]; /*шарики дыма*/ CRect kr2; //кабина int numball; //номер дыма int live[5]; //признак жизни дыма bool game; /*признак игры или вне игры*/ int color; /*номер цвета паровоза*/ int ns; /*номер увета светофора*/ int move; /*флаг движения паровоза* /Член - функции класса СMainWnd : CmainWnd(); - конструктор класса окна

afx_msg void OnBegin();обработчик события на выбор пункта меню «старт» afx_msg void OnRed(); - обработчик события на выбор пункта меню «Red» afx_msg void OnGreen(); - обработчик события на выбор пункта меню «Green» afx_msg void OnBlue(); - обработчик события на выбор пункта меню «Blue» afx_msg void OnPaint(); - ф-ия перерисовки afx_msg void OnTimer( UINT nIDEvent ); - обраб-чик таймера afx_msg void OnExit(); - обработчик события на выбор пункта меню «Exit» afx_msg void OnChar( UINT nChar, UINT nRepCnt, UINT nFlags ); - реакция на нажатие клавиши

клавиатуры DECLARE_MESSAGE_MAP() - карта сообщений 2.2.3. Карта сообщений. BEGIN_MESSAGE_MAP(CMainWnd,CFrameWnd) ON_COMMAND(IDM_EXIT,OnExit) ON_COMMAND(IDM_BEGIN,OnBegin) ON_COMMAND(IDM_RED,OnRed) ON_COMMAND(IDM_GREEN,OnGreen) ON_COMMAND(IDM_BLUE,OnBlue) ON_WM_PAINT() ON_WM_TIMER() ON_WM_CHAR() END_MESSAGE_MAP() 2.3. Образ главного окна. На рисунках 1, 2 представленыосновные образы окна приложения. Рис. 1. Главное окно после выбора пункта «старт» Рис. 2. Главное окно до выбора пункта «старт» Приложение Листинг файла main.cpp /* в этом файле находятся