利用c开发的一款小游戏开发报告.doc_第1页
利用c开发的一款小游戏开发报告.doc_第2页
利用c开发的一款小游戏开发报告.doc_第3页
利用c开发的一款小游戏开发报告.doc_第4页
利用c开发的一款小游戏开发报告.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

开发报告MICROSOFT 基础类库: tiger 项目概述:应用程序向导已为您创建了这个 tiger 应用程序。此应用程序不仅演示 Microsoft 基础类的基本使用方法,还可作为您编写应用程序的起点。本文件概要介绍组成 tiger1 应用程序的每个文件的内容。tiger.vcproj这是使用应用程序向导生成的 VC+ 项目的主项目文件。它包含生成该文件的 Visual C+ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。tiger.h这是应用程序的主要头文件。它包括其他项目特定的头文件(包括 Resource.h),并声明 Ctiger1App 应用程序类。tiger.cpp这是包含应用程序类 Ctiger1App 的主要应用程序源文件。tiger.rc这是程序使用的所有 Microsoft Windows 资源的列表。它包括 RES 子目录中存储的图标、位图和光标。此文件可以直接在 Microsoft Visual C+ 中进行编辑。项目资源位于 这是用作应用程序图标的图标文件。此图标包括在主要资源文件 tiger1.rc 中。restiger.rc2此文件包含不在 Microsoft Visual C+ 中进行编辑的资源。您应该将不可由资源编辑器编辑的所有资源放在此文件中。对于主框架窗口:项目包含标准 MFC 界面。MainFrm.h, MainFrm.cpp这些文件包含框架类 CMainFrame,该类派生自CFrameWnd 并控制所有 SDI 框架功能。resToolbar.bmp此位图文件用于为工具栏创建平铺图像。初始工具栏和状态栏在 CMainFrame 类中构造。使用资源编辑器编辑此工具栏位图,并更新 tiger1.rc 中的 IDR_MAINFRAME TOOLBAR 数组以添加工具栏按钮。应用程序向导创建一个文档类型和一个视图:tiger1Doc.h,tiger1Doc.cpp - 文档这些文件包含 Ctiger1Doc 类。编辑这些文件可以添加特殊文档数据并可实现文件保存和加载(通过 Ctiger1Doc:Serialize)。tiger1View.h,tiger1View.cpp - 文档的视图这些文件包含 Ctiger1View 类。Ctiger1View 对象用于查看 Ctiger1Doc 对象。其他功能:ActiveX 控件应用程序包括对使用 ActiveX 控件的支持。打印及打印预览支持应用程序向导已通过从 MFC 库调用 CView 类中的成员函数,生成了用于处理打印、打印设置和打印预览命令的代码。其他标准文件:StdAfx.h,StdAfx.cpp这些文件用于生成名为 tiger1.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。Resource.h这是标准头文件,它定义新的资源 ID。Microsoft Visual C+ 读取并更新此文件。tiger.manifest应用程序清单文件供 Windows XP 用来描述应用程序对特定版本并行程序集的依赖性。加载程序使用此信息从程序集缓存加载适当的程序集或从应用程序加载私有信息。应用程序清单可能为了重新分发而作为与应用程序可执行文件安装在相同文件夹中的外部 .manifest 文件包括,也可能以资源的形式包括在该可执行文件中。 其他注释:应用程序向导使用“TODO:”指示应添加或自定义的源代码部分。如果应用程序在共享的 DLL 中使用 MFC,则需要重新发布这些 MFC DLL;如果应用程序所用的语言与操作系统的当前区域设置不同,则还需要重新发布对应的本地化资源 MFC90XXX.DLL。有关这两个主题的更多信息,请参见 MSDN 文档中有关 Redistributing Visual C+ applications (重新发布 Visual C+ 应用程序)的章节。游戏执行程序/ tiger1View.cpp : Ctiger1View 类的实现/#include stdafx.h #include tiger1.h#include tiger1Doc.h#include tiger1View.hint mmcol;#ifdef _DEBUG#define new DEBUG_NEW#endif/ 宏变量:白色和黑色#define WHITE RGB(255,255,255)#define BLACK RGB(0,0,0)#define BLUE RGB(0,0,255)/ Ctiger1ViewIMPLEMENT_DYNCREATE(Ctiger1View, CView)BEGIN_MESSAGE_MAP(Ctiger1View, CView)/ 标准打印命令ON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)ON_WM_CREATE()ON_WM_KEYUP()ON_WM_TIMER()ON_BN_CLICKED(0xffe1,OnStartBtn)END_MESSAGE_MAP()/ Ctiger1View 构造/析构Ctiger1View:Ctiger1View()/ TODO: 在此处添加构造代码Ctiger1View:Ctiger1View()BOOL Ctiger1View:PreCreateWindow(CREATESTRUCT& cs)/ TODO: 在此处通过修改/ CREATESTRUCT cs 来修改窗口类或样式return CView:PreCreateWindow(cs);/ Ctiger1View 绘制void Ctiger1View:OnDraw(CDC* pDC)Ctiger1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此处为本机数据添加绘制代码int i;/CBrush *oldBrush = pDC - SelectObject(blackBrush);CRect rect;GetClientRect(&rect);pDC - Rectangle(rect);pDC - SelectObject(grayBrush);pDC - Rectangle(m_iStartX ,m_iStartY, m_iStartX + m_iLarge*m_iCol, m_iStartY +m_iLarge*m_iRow);/pDC - Rectangle(10 ,10, 10 + 301, 10 + 200);pDC - SelectObject(blueBrush);/CPen *oldPen = pDC-SelectObject(blackPen);/画网格线if (1)/画横线for (i=0;iMoveTo(m_iStartX, m_iStartX + i*m_iLarge);pDC-LineTo(m_iStartX + m_iLarge*m_iCol, m_iStartX +i*m_iLarge);/画竖线for (i=0;iMoveTo(m_iStartY+i*m_iLarge, m_iStartY);pDC-LineTo(m_iStartY+i*m_iLarge, m_iStartY+m_iLarge*m_iRow);/ Ctiger1View 打印BOOL Ctiger1View:OnPreparePrinting(CPrintInfo* pInfo)/ 默认准备return DoPreparePrinting(pInfo);void Ctiger1View:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 添加额外的打印前进行的初始化过程void Ctiger1View:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 添加打印后进行的清理过程/ Ctiger1View 诊断#ifdef _DEBUGvoid Ctiger1View:AssertValid() constCView:AssertValid();void Ctiger1View:Dump(CDumpContext& dc) constCView:Dump(dc);Ctiger1Doc* Ctiger1View:GetDocument() const / 非调试版本是内联的ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(Ctiger1Doc);return (Ctiger1Doc*)m_pDocument;#endif /_DEBUG/ Ctiger1View 消息处理程序int Ctiger1View:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CView:OnCreate(lpCreateStruct) = -1)return -1;whitePen = new CPen(PS_SOLID,1,WHITE);blackPen = new CPen(PS_SOLID,1,BLACK);grayBrush = new CBrush(RGB(0,255,255);blueBrush = new CBrush(BLUE);blackBrush = new CBrush(BLACK);/左上角X,Y坐标m_iStartX = 10;m_iStartY = 10;/缺省方块大小为m_iLarge个象素m_iLarge = 30;m_iRow = 10;m_iCol = 10;m_turn=0;ani_count=3;/pDataBit1-LoadBitmaps(IDB_BITMAP1);two2one=false;three2two=false;one2three=false;report=false;IsStart=false;srand(unsigned)time(NULL); SetTimer(1,200,NULL);m_posX0=rand()%m_iCol;m_posX1=rand()%m_iCol;m_posX2=rand()%m_iCol;m_posY1=rand()%m_iRow;m_posY2=rand()%m_iRow;m_posY0=rand()%m_iRow;CBitmapButton *pDataBit1 =new CBitmapButton ;CBitmapButton *pDataBit2 =new CBitmapButton ;CBitmapButton *pDataBit3 =new CBitmapButton ;CButton *pStart=new CButton;CEdit *p_ColEdit=new CEdit;CEdit *p_RowEdit=new CEdit;pDataBit1-Create(老虎,WS_VISIBLE|WS_CHILD,CRect(m_iStartX+m_iLarge*m_posX0,m_iStartY+m_iLarge*m_posY0,m_iStartX+m_iLarge*m_posX0+m_iLarge,m_iStartY+m_iLarge*m_posY0+m_iLarge),this ,0XFFF1);pDataBit2-Create(鸡,WS_VISIBLE|WS_CHILD,CRect(m_iStartX+m_iLarge*m_posX1,m_iStartY+m_iLarge*m_posY1,m_iStartX+m_iLarge*m_posX1+m_iLarge,m_iStartY+m_iLarge*m_posY1+m_iLarge),this ,0XFFF2);pDataBit3-Create(棒子,WS_VISIBLE|WS_CHILD,CRect(m_iStartX+m_iLarge*m_posX2,m_iStartY+m_iLarge*m_posY2,m_iStartX+m_iLarge*m_posX2+m_iLarge,m_iStartY+m_iLarge*m_posY2+m_iLarge),this ,0XFFF3);pStart-Create(开始,WS_VISIBLE|WS_CHILD,CRect(m_iStartX+m_iLarge*m_iCol+50,m_iStartY+50,m_iStartX+m_iLarge*m_iCol+120,m_iStartY+100),this ,0Xffe1);p_ColEdit-Create(ES_LEFT | WS_VISIBLE|WS_CHILD,CRect(m_iStartX+m_iLarge*m_iCol+50,m_iStartY+150,m_iStartX+m_iLarge*m_iCol+120,m_iStartY+180),this ,IDC_iCol);p_RowEdit-Create(ES_LEFT | WS_VISIBLE|WS_CHILD,CRect(m_iStartX+m_iLarge*m_iCol+50,m_iStartY+200,m_iStartX+m_iLarge*m_iCol+120,m_iStartY+230),this ,IDC_iRow);/*GetDlgItem(IDC_iCol)-SetDlgItemInt(m_iCol);GetDlgItem(IDC_iCol)-SetDlgItemInt(m_iRow);*/SetDlgItemInt(IDC_iCol,m_iCol);SetDlgItemInt(IDC_iRow,m_iRow);return 0;void Ctiger1View:OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)CView:OnKeyUp(nChar, nRepCnt, nFlags);void Ctiger1View:OnTimer(UINT_PTR nIDEvent)/ TODO: 在此添加消息处理程序代码和/或调用默认值bool m_isOK;int pos_tmp;int pos_tmpy;m_isOK=false;while (!m_isOK & !report & IsStart)if (1=m_turn)switch(rand()%4)case 0:if(m_posXm_turnm_iCol-1)m_posXm_turn+=1;m_isOK=true;break;case 1:if(m_posYm_turn0)m_posXm_turn-=1;m_isOK=true;break;case 3:if(m_posYm_turn0)m_posYm_turn-=1;m_isOK=true;break;if (0=m_turn)switch(rand()%4)case 0:pos_tmp=m_posXm_turn+rand()%3+1;if (pos_tmpm_iCol)m_posXm_turn=pos_tmp;m_isOK=true;break;case 1:pos_tmp=m_posYm_turn+rand()%3+1;if (pos_tmp=0)m_posXm_turn=pos_tmp;m_isOK=true;break;case 3:pos_tmp=m_posYm_turn-(rand()%3+1);if (pos_tmp=0)m_posYm_turn=pos_tmp;m_isOK=true;break;if (2=m_turn)switch(rand()%4)case 0:pos_tmp=m_posXm_turn+1+rand()%2;pos_tmpy=m_posYm_turn+1+rand()%2;if(pos_tmpym_iRow & pos_tmpm_iCol)m_posXm_turn=pos_tmp;m_posYm_turn=pos_tmpy;m_isOK=true;break;case 1:pos_tmp=m_posXm_turn-(1+rand()%2);pos_tmpy=m_posYm_turn+1+rand()%2;if(pos_tmpy=0)m_posXm_turn=pos_tmp;m_posYm_turn=pos_tmpy;m_isOK=true;break;case 2:pos_tmp=m_posXm_turn-(1+rand()%2);pos_tmpy=m_posYm_turn-(1+rand()%2);if(pos_tmpy=0 & pos_tmp=0)m_posXm_turn=pos_tmp;m_posYm_turn=pos_tmpy;m_isOK=true;break;case 3:pos_tmp=m_posXm_turn+(1+rand()%2);pos_tmpy=m_posYm_turn-(1+rand()%2);if(pos_tmpy=0 & pos_tmpMoveWindow(CRect(m_iStartX+m_iLarge*m_posX0,m_iStartY+m_iLarge*m_posY0,m_iStartX+m_iLarge*m_posX0+m_iLarge,m_iStartY+m_iLarge*m_posY0+m_iLarge);GetDlgItem(0xfff2)-MoveWindow(CRect(m_iStartX+m_iLarge*m_posX1,m_iStartY+m_iLarge*m_posY1,m_iStartX+m_iLarge*m_posX1+m_iLarge,m_iStartY+m_iLarge*m_posY1+m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论