На главную   Контакты   Поиск   Карта сайта   Ссылки 
рефераты
 

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

/p>

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

/* в этом файле находятся описания всех функций */

#include <afxwin.h>

#include "main.h"

#include "menu1.h"

CMainWnd::CMainWnd() /*конструктор гл. окна*/

{

wnd.SetRect(0,0,400,355);//устан-ка размеров окна

Create(NULL,"parovoz",WS_DLGFRAME ,wnd,NULL,"MAINMENU");

game=false; /*нет игры*/

color=0; /*нач. цвет поезда*/

ns=0; /*нач. цвет светофора*/

br1[0].CreateSolidBrush(RGB(255,0,0));//создание кистей

br1[1].CreateSolidBrush(RGB(0,255,0));

br1[2].CreateSolidBrush(RGB(0,0,255));

sv[0].CreateSolidBrush(RGB(255,0,0));//создание кистей

sv[1].CreateSolidBrush(RGB(0,255,0));//светофора

sv[2].CreateSolidBrush(RGB(255,255,0));

sv[3].CreateSolidBrush(RGB(128,128,128));

br2.CreateSolidBrush(RGB(1,1,1));/*чёрный цвет*/

for(numball=0;numball<5;numball++)

{//обнуление признаков жизни дыма

live[numball]=0;

}

}

BOOL CApp:: InitInstance()/*ф-ия инициализации окна*/

{

m_pMainWnd=new CMainWnd; /*созд объекта окна*/

m_pMainWnd->ShowWindow(m_nCmdShow); /*показать окно*/

return true; /*удачное завершение*/

}

afx_msg void CMainWnd::OnPaint() /*ф-ия перерисовки*/

{

CPaintDC dc(this); /*созданиее контекста окна*/

dc.SelectObject(&br2); /*выбор кисти для светофора*/

dc.Rectangle(svet); //рисование корп. светофора

dc.Rectangle(noga); //рисование ноги

for(numball=0;numball<5;numball++)

{//рисование дыма

if(live[numball]==1)//если дым активен

{

dc.Ellipse(balls[numball]);

}

}

switch(ns) /*переключение между цветами светофора*/

{

case 0: /*если красный*/

{

dc.SelectObject(sv[0]);

dc.Ellipse(ball1);

dc.SelectObject(sv[3]);

dc.Ellipse(ball2);

dc.Ellipse(ball3);

<< назад    вперед >>

© 2006. Все права защищены.