文档详情

可视化程序设计..doc

发布:2016-12-17约字共13页下载文档
文本预览下载声明
《可视化程序设计》 ——课程设计报告 题目: 俄罗斯游戏方块 班级: 04级本一班 成员: 吴晓娟(0419411046) 赵粉娟(0419411035) 白冰(0419411034) 专业: 计算机科学与技术 日期: 2008-1-07 一、设计内容 创建一个单文档应用程序, 设计一个简单的俄罗斯方块游戏,能够完成俄罗斯方块游戏的基本功能。 二、设计目的 通过本实验来巩固本学期中所学的Vc++ 中的类的使用,菜单资源的添加及使用,学会进行消息影射,能够实现对键盘消息进行响应。 三、设计要求 要求通过键盘上的左右方向键来控制游戏中方块的左右移动,通过键盘上的向上键来改变方块的排列方向,同过向下的键来使方块直接移动到下面。通过在菜单栏里面的skill下的1,2,3,4来选择游戏的难度。 四、设计原理 先在菜单资源中添加和修改相应的资源,并对其进行消息映射,再在CView中添加相应的函数和变量完成相应的设置以实现其功能。主要是通过键盘消息响应实现各个方块的移动和变化。通过计时器实现游戏难度的设置。用数组的方式来表示游戏中的格子,每种不同排列的方块用不同的颜色来表示。方块移动时使用填充和绘制的方式来实现。 设计步骤 1)创建MFC单文档应用程序。 2)添加和修改菜单资源,并进行消息映射。 3)利用ClassWizard添加成员变量。 4)利用ClassWizard添加成员函数及结构体point。 六、设计总结 通过本次实验,巩固和更深的理解了本学期所学的知识,理解了类的定义,资源的添加和消息映射,对键盘消息的响应有了更好的掌握, 七、主要源码 具体代码如下:添加的成员变量如下: COLORREF tempcolor,color[20][10];void myDraw();int time;void Star(); int count;void Isover();int dop();int Isbottom();int Isout(int w);int round(int as); void clean(int b);int index;int R; int L;int H;int cor[20][10];int J; CBitmap* m_pbmpContents; // to get a faster update if flickerfree is on int K;BOOL flag,flag2;int Y;int X;int k;point aa[4],bb[4],dd[4]; 添加成员函数及其代码如下: int CFanView::OnCreate(LPCREATESTRUCT lpCreateStruct) // 初始化游戏界面 {if (CView::OnCreate(lpCreateStruct) == -1) return -1; flag2=0; k=0; time=500; K=0; Y=0; for(int i=0;i20;i++) {for(int j=0;j11;j++) {cor[i][j]=0; } } count=0; R=0; L=0; H=0; index=0; flag=0; Star(); SetTimer(IDC_TIMER,time,NULL); return 0; } // 设置定时器 void CFanView::OnTimer(UINT nIDEvent) { Y=1; if(K) {if(Isbottom()) {flag=1; clean(0); R=R+2; for(int a=0;a4;a++) {aa[a].x++; } myDraw(); } else if(K) {Isover(); Star(); flag=1; } } Y=0; CView::OnTimer(nIDEvent); } void CFanView::clean(int b) {for(int a=0;a4;a++) { cor[aa[a].x][aa[a].y]=0; dd[a].x=aa[a].x; dd[a].y=aa[a].y; } } int CFanView::round(int as) { int tempx=0,tempy=0,a,d=0,h=0; int temp2=0,temp1=0; for(a=0;a4;a++) { bb[a].x=aa[a].x;
显示全部
相似文档