俄罗斯方块C++课程设计报告_第1页
俄罗斯方块C++课程设计报告_第2页
俄罗斯方块C++课程设计报告_第3页
俄罗斯方块C++课程设计报告_第4页
俄罗斯方块C++课程设计报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计报告题目:基于C+我罗斯方块学院:专业:学号:姓名:二。一三年十二月经典小游戏设计-俄罗斯方块1、 需求分析。、游戏需求随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)下落填充给定的区域,若填满一条便消掉,若在游戏中各形状填满了给定区域,为输者,弹出相应提示。、游戏界面需求良好的用户界面,有关信息显示(如操作方法、等级等)。让方块在一定的区域内运动和变形,该区域用一种颜色表明,即用一种颜色作为背景,本游戏的背景设为黑色。还需用另一种颜色把黑色围起来,宽度适中,要实现美感。而不同的方块用不同的着色表示,使游戏界面更加清晰、有条理。消层时采用一定的时间延迟,增加

2、视觉消行的感官效果。、游戏方块需求良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、L字形、反L形、T字型)以及另外本程序另外加入的点形方块,各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。为体现游戏的趣味性和扩展性,本游戏象征性的增加了点形方块,其他更多形状的方块可用类似方法增加。、游戏控制的需求游戏控分为多个方面,包括画面绘制,控制命令的获取,控制命令的分配、控制命令的处理,方块的绘制,方块的移动,方块的旋转,方块下落和消层以及计分等。对各个命令的合理处理和综合控制十分重要,一旦出错可能导致整个程序的崩溃,因此需要小心设计。2、 系统设计。、程序

3、流程图:、游戏设计概述从整体上而言,在该游戏可设计一个方块类,其中包括对方块的信息描述(如ID)、方块的操作(如:旋转、下沉)。再设计一个控制类,实现各种控制(如:获取控制信号,分发控制信号)。另定义一个游戏区类,用以处理游戏区绘制等内容。框图如下:方块类(GAME_BLOCK游戏区类(WindowPrivate:BLOCKINFOg_CurBlock;Private:无(新方块)BLOCKINFOg_NextBlock;(下一方块)Public:VoidInitWindow()Public:GAME_BLOCK()GAME_BLOCK()voidNewBlock();巾while(c&

4、;0xF)=0);c>>=4;ir;intx,y;for(inti=0;i<16;i+,b<<=1)if(b&0x8000)x=+i%4;y=-i/4;if(y<HEIGHT)DrawUnit(x,y,g_Blocks口.color,_draw);ir口;intx,y;for(inti=0;i<16;i+,b<<=1)if(b&0x8000)x=+i%4;y=-i/4;if(x<0)|(x>=WIDTH)|(y<0)returnfalse;if(y<HEIGHT)&&(g_Worldx

5、y)returnfalse;returntrue;ir;for(i=0;i<16;i+,b<<=1)if(b&0x8000)if-i/4>=HEIGHT)/如果方块的固定位置超出高度,结束游戏GameOver();return;elseg_World+i%4-i/4=1;/检查是否需要消掉行,并标记BYTEremove=0;/低4位用来标记方块涉及的4行是否有消除行为for(y=;y>=max-3,0);y-)i=0;for(x=0;x<WIDTH;x+)if(g_Worldxy=1)i+;if(i=WIDTH)remove|=(1<<-

6、y);setfillcolor(LIGHTGREEN);setlinecolor(LIGHTGREEN);setfillstyle(BS_HATCHED,HS_DIAGCROSS);fillrectangle(0,(HEIGHT-y-1)*UNIT+UNIT/2-5,WIDTH*UNIT-1,(HEIGHT-y-1)*UNIT+UNIT/2+5);setfillstyle(BS_SOLID);if(remove)/如果产生整行消除/延时300毫秒Sleep(300);/擦掉刚才标记的行IMAGEimg;for(i=0;i<4;i+,remove>>=1)if(remove&a

7、mp;1)for(y=-i+1;y<HEIGHT;y+)for(x=0;x<WIDTH;x+)g_Worldxy-1=g_Worldxy;g_Worldxy=0;getimage(&img,0,0,WIDTH*UNIT,(HEIGHT-i+1)*UNIT);putimage(0,UNIT,&img);score+;outtextxy(50,150,_T(score);/产生新方块NewBlock();四、测试结果。程序完成后运行如下,达到预期结果,运行效果良好。成功地完成了方块的显示、旋转、消行功能,游戏可玩性强,且具有封装性、通用性、容错性。五、实验总结。本次C+解程设计前期准备阶段,设想一些构想和主要任务;后期则是具体功能的实现。这次设计中我遇到了不少困难,本来设想实现双人版对战,美化界面和增加背景音乐等功能,可是由于时间的短促,最终没能实现,心里不免有些遗憾,在实现类的封装和类的继承和多态性时,也遇到了不少问题,通过大家的一起探讨和分析,问题最终一个个迎刃而

温馨提示

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

评论

0/150

提交评论