俄罗斯方块c课程设计报告

课程设计报告题目:基于C++俄罗斯方块学院:专业:学号:姓名:二○一三年十二月经典小游戏设计-俄罗斯方块一、需求分析。1.1、游戏需求随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)下落填充给定的区域,若填满一条便消掉,若在游戏中各形状填满了给定区域,为输者,弹出相应提示。1.2、游戏界面需求良好的用户界面,有关信息显示(如操作方法、等级等)。让方块在一定的区域内运动和变形,该区域用一种颜色表明,即用一种颜色作为背景,本游戏的背景设为黑色。还需用另一种颜色把黑色围起来,宽度适中,要实现美感。而不同的方块用不同的着色表示,使游戏界面更加清晰、有条理。消层时采用一定的时间延迟,增加视觉消行的感官效果。1.3、游戏方块需求良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、L字形、反L形、T字型)以及另外本程序另外加入的点形方块,各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。为体现游戏的趣味性和扩展性,本游戏象征性的增加了点形方块,其他更多形状的方块可用类似方法增加。1.4、游戏控制的需求游戏控分为多个方面,包括画面绘制,控制命令的获取,控制命令的分配、控制命令的处理,方块的绘制,方块的移动,方块的旋转,方块下落和消层以及计分等。对各个命令的合理处理和综合控制十分重要,一旦出错可能导致整个程序的崩溃,因此需要小心设计。二、系统设计。2.1、程序流程图:2.2、游戏设计概述从整体上而言,在该游戏可设计一个方块类,其中包括对方块的信息描述(如:ID)、方块的操作(如:旋转、下沉)。再设计一个控制类,实现各种控制(如:获取控制信号,分发控制信号)。另定义一个游戏区类,用以处理游戏区绘制等内容。框图如下:方块类(GAME_BLOCK)游戏区类(Window)Private:BLOCKINFOg_CurBlock;(新方块)BLOCKINFOg_NextBlock;Private:无Public:VoidInitWindow()(下一方块)Public:GAME_BLOCK(){}~GAME_BLOCK(){}voidNewBlock();//生成方块boolCheckBlock(BLOCKINFO_block);//检测方块能否放下voidDrawBlock(BLOCKINFO_block,DRAW_draw=SHOW);voidOnRotate();//旋转方块voidOnLeft();//左移方块voidOnRight();//右移方块voidOnDown();//下移方块voidOnSink(CGAME&);//沉底方块BLOCKINFO&CurBlock();BLOCKINFO&NextBlock();游戏控制类(CGame)Private:VoidDispatchControl(CTRL);Public:voidInitGame();//初始化游戏VoidStart_Game();//开始游戏voidGame_Over();//游戏结束voidNewGame();//新游戏voidQuit_Game();//退出游戏CTRLGetControl(bool_onlyresettimer=false);//获取控制命令在主函数中(按照2.1中框图),先通过控制类初始化游戏,再通过随机时间函数获得一个随机数,该随机数确定一个方块,即用该随机数产生一个ID从而确定产生的为方块。然后从键盘取得各种操作信号,通过控类函数对操作信号进行分发、处理,进而控制方块的行为改变。与此同时,监控游戏区中已有方块的状态,一旦满足消行即进行消行控制,同时进行计分和等级划分,而如果游戏区已满则游戏结束,弹出提示。而对界面和方块的展现主要通过第三方软件EasyX实现,通过其画图位置的改变与时间的结合达到方块视觉移动的效果。2.3、定义方块的数据结构方块是本游戏的基本要素,对于方块的设计,本游戏用4*4的矩阵画出来,在相应的位置置为‘1’和‘0’以实现各种方块的形状,以“立L形”为例如下:而在程序设计中则赋予各种基本方块一个不同的十六进制ID即可表示该方块,如“立7形”其ID为[0x4460],再与其其他变形组合和着色分配即可得到各种L形ID的集合{0x4460,0x02E0,0x0622,0x0740,MAGENTA};其他各种方块类似设计。具体清单如下:{{0x0F00,0x4444,0x0F00,0x4444,RED},//I{0x0660,0x0660,0x0660,0x0660,BLUE},//口{0x4460,0x02E0,0x0622,0x0740,CYAN},//L蓝绿色{0x2260,0x0E20,0x0644,0x0470,GREEN},//反L{0x0C60,0x2640,0x0C60,0x2640,BROWN},//Z{0x0360,0x4620,0x0360,0x4620,YELLOW},//反Z{0x4E00,0x4C40,0x0E40,0x4640,MAGENTA}};//T品红2.4、方块的变形方块要实现变...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?