ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:388.38KB ,
资源ID:20073978      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20073978.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(俄罗斯方块游戏本科毕业设计论文Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

俄罗斯方块游戏本科毕业设计论文Word下载.docx

1、在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。论文作者签名: 日期:指导教师签名:大连广播电视大学毕业设计论文题目 俄罗斯方块游戏 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 日期:使用授权说明本人完全了解 大

2、学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期:摘要 在现代信息高速发展的时代,电子游戏已经深入了人们的日常生活,成为了老少咸宜的娱乐方式,但是游戏设计结合了日新月异的技术,在一个产品中整合了复杂的艺术,设计,声音和软件,所以并不是人人皆知,直到今天,在中国从事游戏设计的人仍然很少,但是游戏行业的发展之快,远超如汽车,家电等传统行业,也正因

3、为如此,游戏人才的教育培养远落后于行业的发展。 俄罗斯方块是一个老少咸宜的小游戏,它实现有四个正方形的色块组成,然后存储于一个数组的四个元素中,计算机随机产生七种不同类型的方块,根据计算机时钟控制它在一定的时间不停的产生,用户根据键盘的四个方向键进行向左,向右,向下,翻转操作。然后程序根据这七种方块折叠成各种不同的类型。 论文描述了游戏开发的背景,意义,算法分析,功能实现,功能测试。以C+为开发语言进行设计与实现。关键词:电子游戏,算法,C+,测试The Russian square piece Abstract : In the era of high-speed development o

4、f electronic of information, computer game has enter peoples daily life, become an amusement adapt to old and young. But game design is a combination of fast-moving technology ,the complexity of integrating design,art,audio and software into a single production,so this thechnology isnt known by ever

5、yone .up-to-date,there are few people work at game design all the same,whereas,thedevelopment of game industry more faster than traditional industry as home appliances and automobile,by the reason of this situation,the education and training of person with ablity of game design drop behind the devel

6、opment of game industry. The Russian square piece is a get-away drama with all proper old young ,it carry out to be constitute by four pieces of colours of exact square piece ,then save in one four chemical elements of the piece set ,random creation dissimilarity of calculator seven the square piece

7、 of the category type ,control it according to the calculator clock in certain time continuously creation , the customer is inside out according to four directions key control of the keyboard ,to left ,rightwards and get down ,(the realization of the control key is to be carry out by the event handi

8、ng of the direction key of the keyboard) Then the procedure pileds according to these seven kinds of square pieces various different model. The thesis has described the game history ,has developed this game history ,has developed this game environment, development significance of game .Knowledge abi

9、ding by a software engineering ,definition begins from software problem ,proceed to carry out feasibility study ,need analysis ,essentials design,the at last has carried out a testing on the software engineering knowledge hierarchy .The computer games design and practice are designed o eclipse devel

10、oping platform with C+ developing instrument ,under Microsoft Windows XP system this time.Key Words: electronic game calculate way C+ test俄罗斯方块的程序设计1引言计算机游戏产业在随着网络的发展有了长足的发展。游戏最早起源于纯文字的交互游戏MUD,MUD是英文Multi-user Dungeons的缩写。纯文字交互,顾名思义,是一纯文字的形式来进行游戏。即,所有的场景描述、物品的样子、所有人的行动、时间的描述都是用文字的方式表达的。总之,文字MUD是一个很需

11、要想象力的游戏形式,需要从文字转化成玩家自己脑海中的现实场景。随着电子元器件的发展,电子产品迅速发展。掌上游戏机和电视游戏机在80年代和90年代风靡一时,此时由苏联人Alex Pajitnov制作的游戏俄罗斯方块在掌上游戏机和电视游戏机上流行,其造成的轰动和经济价值成为游戏史上的大事。所以本文通过用C+实现俄罗斯方块学习游戏的整个设计和测试过程,学习用基于Windows的游戏程序设计。1.1课题背景 俄罗斯方块是个老幼皆宜的小游戏,它实现由四块正方形的色块组成,然后存储在一个数组的四个元素中,计算机随机产生不同七种类型的方块,根据计算机时钟控制它在一定的时间不停的产生,用户根据键盘的四个方向键

12、控制翻转、向左、向右和向下操作,(控制键的实现是由键盘的方向键的消息函数实现)。然后程序根据这七种方块堆叠成各种不同的模型。基于Windows的游戏设计有很多方式,如基于java跨平台的设计,基于.net平台的设计和基于MFC的设计,三种设计各有优缺。基于java的设计能够充分运用java跨平台的特性,便于移植,可以做到一次代码在不同环境下的运行,从而大大提高可移植性,便于在移动设备上运行,但是基于java的设计由于运行在虚拟机上,效率比较低。基于.net平台的设计可以利用.net平台提高的接口大大简化设计过程,然而其通用性不好,需要.net平台支持,在执行效率上也不如MFC程序。基于MFC的

13、程序设计具有执行高效的特点,跟windows的契合比较好,但不具有跨平台能力。 相比三种设计方案,为了能够在Windows平台上以更好的性能运行,本文采用VC+基于MFC的设计,来完成俄罗斯方块的游戏。 1.2毕设意义此次毕设通过用C+设计与实现俄罗斯方块游戏。包括系统的需求分析;系统总框图及每个模块的设计分析;MFC应用程序架构;框架的扩展;算法的设计与实现;游戏的内部实现;游戏区域绘图的实现;系统存在的问题及错误处理;以及游戏的测试和改进。通过此次毕业设计,我对软件设计的过程有了清晰的认识,通过编写游戏的各个方面工作学习了设计思想,程序架构,数据结构和算法,同时也对windows程序设计特

14、别是基于MFC的程序设计有了直观的认识。通过游戏的测试学习到了常用的测试过程,测试方法。2需求与算法分析2.1需求分析2.1.1 游戏需求功能性需求如下:随机给出不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型)下落填充给定的区域,若填满一条便消掉,记分,若同时消去两行以上则会放烟花来庆祝,游戏可以设置难度,难度主要由方块的下降速度决定,下降速度越大难度越大,若在游戏中各形状填满了给定区域,为输者。如下表(表2.1)为游戏功能性需求表。功能 简介 顺时针旋转顺时针旋转转块逆时针旋转逆时针旋转转块绘制转块指定画板上绘制转块擦除矩形指定画板上擦除矩形右移动右移动转块左移动左移动转

15、块下移动下移动转块丢下转块在画板上丢下转块燃放烟花在面板内根据一次得分多少燃放烟花计分根据用户消去的行数计分表2.1示例作为玩家,玩家可以控制难度,查看帮助等,对于操作性的需求如下: 玩家可以自己来控制方块下落的速度。 玩家可以自己来控制游戏的难度。 玩家可以看到游戏的积分。 对本游戏有帮助说明和作者介绍等2.1.2游戏界面需求良好的用户界面,有提示显示和分数显示。让方块在一定的区域内运动和变形,该区域用一种颜色表明,即用一种颜色作为背景,最好设为黑色。还需用另一种颜色把黑色围起来,宽度适中,要实现美感。将整体界面分为三部分:左侧半部分用来存放俄罗斯方块,是游戏的活动区,用户操作的图形变化在这

16、个主界面区完成。右上侧部分显示下一次要产生的俄罗斯方块形状,以便用户预先知道,增加游戏的可玩性。右侧下半部分用来显示用户的分数和当前等级,以便让用户有成就感增加可玩性。如图为整体的界面设计需求效果,将整个界面分成了三部分,显得简易清爽,作为用户界面让玩家感觉比较舒服得体。如图2.1所示:图2.1示例2.1.3 游戏形状(方块)需求良好的方块形状设计,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型),各个方块要能实现它的变形,可设为顺时针或逆 时针变形,一般为逆时针。为了使游戏更加美观更具可玩性,在绘制方块的过程中不采用默认的绘制方式,而是用经过处理的图片效果,这

17、样让组成的方块更加美观,同时彩色的方块也让人赏心悦目,增加了游戏的可玩性。下图(图2.2)就是用来拼接方块颜色的样板色。图2.2示例由图可见这种带有实体效果的方块比一般的二维方块更具立体效果,更美观,会更吸引玩家。2.2算法分析2.2.1定义方块的数据结构对于方块在某一瞬间的位置标识,我们采用一个42的小数组标识出来,即用4个存储单位空间存储当前下坠物的每一子块的位置,也就是说,用4个存储单位空间存储当前下坠物的每一子块的位置来对整个下坠物件的位置进行标识,而每个存储空间的大小就是一个典的坐标值(x,y),而每个方块按照从左到右的方式进行编号,并且在编号过程中对于同一列的方块实行从上到下进行编

18、号 。如图2.3所示:(x0,y0)(x1,y1)(x2,y2)(x3,y3)231方块编号图2.3示例方块表示方法,即四个小方块的坐标设定:其中一个方块是原点,坐标为(0,0);右侧方块坐标(1,0),下面的方块坐标(0,1),以此类推。 如下为程序中定义的各种方块的数据结构定义。 2.2.2俄罗斯方块流程俄罗斯方块流程(图2.4):图2.4示例如图中所示是俄罗斯方块的处理流程,从开始判断是否到底底部,到达则做销行操作,然后生成下一个下坠物,将新的下坠物代替旧的下一个下坠物,将旧的下坠物当做当前的下坠物,下到底部判断是否做销行操作,然后判断游戏是否结束,未结束则继续新一轮的生产方块,若方块达

19、到了顶部,占满了空间则游戏结束。3系统功能实现3.1产生主窗口通过InitInstance函数来初始化窗口的各个信息,包括窗口的位置,位图信息按钮和时钟初始化等。InitInstance函数的实现如下,程序首先调用CreatWindow函数创建初始窗口句柄,然后设置窗口显示坐标,将窗口居中,用空的位图来初始化使界面内都是是空的。定义好窗口和时钟最后讲窗口显示出来。BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) HWND hWnd; int x,y; hInst = hInstance; / Store instance handle i

20、n our global variable hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) return FALSE; /窗口居中, 高度包含标题栏的30 x=GetSystemMetrics(SM_CXSCREEN); y=GetSystemMetrics(SM_CYSCREEN); MoveWindow(hWnd,(x-GAMEWIDTH)/2,(y-GAM

21、EHEIGHT-30)/2,GAMEWIDTH,GAMEHEIGHT+30,false); /设置dc hdcwindow=GetDC(hWnd); hdcmem=CreateCompatibleDC(hdcwindow); hdccanvas=CreateCompatibleDC(hdcwindow); /用空位图初始化DC hmapnull=CreateCompatibleBitmap(hdcwindow,GAMEWIDTH,GAMEHEIGHT); SelectObject(hdccanvas,hmapnull); SelectObject(hdcmem,hmapnull); /位图初始

22、化 bmStart.Init(hInstance,IDB_BITMAP_START); bmStart.SetDevice(hdccanvas,hdcmem); bmStart.InitSizeList(1,PICW,PICH); bmBack.Init(hInstance,IDB_BITMAP_BACK); bmBack.SetDevice(hdccanvas,hdcmem); bmBack.InitSizeList(1,200,200); bmSquare.Init(hInstance,IDB_BITMAP_SQUARE); bmSquare.SetDevice(hdccanvas,hdc

23、mem); bmSquare.InitSizeList(5,22,22); bmBomb.Init(hInstance,IDB_BITMAP_BOMB); bmBomb.SetDevice(hdccanvas,hdcmem); bmBomb.InitSizeList(5,22,22,1); /按钮 mybutton.Init(hInstance,IDB_BITMAP_BUTTON); mybutton.SetDevice(hdccanvas,hdcmem); mybutton.InitButton(6,BtRect);/按钮 myclock.Init(hWnd,TIME_INFO);/时钟 s

24、rand(unsigned)time(NULL);/初始化随机函数 / 显示窗口 ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE;3.2定义俄罗斯方块数据结构俄罗斯方块通过坐标来实现,其数据结构如下:/每四个点,表示一种方块/(一维,二维都可以做)POINT gl_square28= /方形 0,0,1,0,0,1,1,1, /长条 0,-1,0,0,0,1,0,2, /Z -1,-1,0,-1,0,0,1,0, -1,1,0,1,0,0,1,0, /L -1,-1,-1,0,0,0,1,0, -1,0,0,0,1,0,1

25、,-1, / -1,0,0,0,1,0,0,-1,;3.3游戏的主逻辑 将新的下坠物放置到游戏区域中去,这时可能出现马上到达底部的情况,因此需要对它进行判断,如果是到达底部,则进行销行处理,并且修改相应的数据状态。而判断是否已经到达了底部,可以通过当前下坠物件所对应的接触面的方块位置为被占用状态来确定,利用数组记录17种下坠物的14种形态的接触面信息。统计分数:在消行处理里面有一个专门用来统计消行数的变量,然后根据变量的值决定分数的多少,程序统计分数是:消一行得10分,同时消2行得30分,消得3行得60分,消得4行得100分。如果总分数达到过关条件就过关,改变游戏速度。没有达到过关分数或者没有

26、满行,则加载下一个方块继续游戏。如图3.1所示:图3.1示例以下为实际代码中游戏的主要逻辑检测函数Checkgame的代码部分,根据系统的状态确定是否生产新的方块还是移动当前方块直到其落到底部判断是否该销行,进行下次的循环。if(INVALID=squareNow.id) /如果没有当前移动的方块 /生成当前方块 memcpy(&squareNow,&squareNext,sizeof(squareNext); squareNow.pos.x=4; squareNow.pos.y=0; iTime=0; if(!CanMove() /如果新生成的方块无法移动,失败 iState=GAME_FAIL; myclock.ReStart(TIME_FAIL); /生成下一个 CreateNext(); else /移动当前方块 iTime+; if(iTime=12-iSpeed) iTime=0; if(! /清除当前方块 squareNow.id=INVALID; /写入数组 PutSpare(); else squareNow.pos.y+;3.4销行功能实现当俄罗斯方块占满了空间内的一块或者多行时,系统就该消去一行,同时给用户相应的得分,当用户得分达到20分以上时则根据分数等级给予用户烟花表演以示鼓励。用户游戏空间有19行,10列,每次判断销行

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1