学位论文—基于qt的俄罗斯方块游戏的设计与实现论文.doc
《学位论文—基于qt的俄罗斯方块游戏的设计与实现论文.doc》由会员分享,可在线阅读,更多相关《学位论文—基于qt的俄罗斯方块游戏的设计与实现论文.doc(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、北京邮电大学毕业设计 基于QT的俄罗斯方块游戏设计与实现摘要为了能够更进一步掌握Qt编程,我决定用Qt开发一个单机版的的俄罗斯方块游戏。俄罗斯方块的实现由四块正方形的色块组成,计算机随机产生不同七种类型的方块,根据计算机时钟控制它在一定的时间不停的产生,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,(控制键的实现是由键盘的方向键的事件处理实现)。然后程序根据这七种方块堆叠成各种不同的模型。本次设计用到的工具是基于UBUNTU或windows下的QT软件实现,图行界面的处理都是代码实现.论文描述了游戏的历史,开发此游戏的环境,游戏开发的意义。遵循软件工程的知识,从软件问题定义开始,接着
2、进行可行性研究、需求分析、概要设计、详细设计,最后对软件进行了测试,整个开发过程贯穿软件工程的知识体系。本游戏操作简单,界面清晰,让玩家容易上手操作。关键词:游戏设计;算法;数组;事件;QTDesign and implementation of Tetris, based on the QTABSTRACTIn order to further grasp the Qt programming, I decided to use Qt to develop a stand-alone version of the game tetris.Tetris implementation is co
3、mposed of four square of color piece, the computer randomly generate different seven types of square, according to the control it in a certain amount of time on the computer clock, users according to the four keyboard direction key control flip, left, right and down operation, (the realization of th
4、e control key is by the keyboard direction key event handling implementation).Then the program according to the seven squares stack into a variety of different models.The design tool used is based on the QT under UBUNTU or windows software, the graph line interface processing is code to achieve. The
5、 thesis has described the game history , has developed this game environment, development significance of game. Knowledge abiding by a software engineering, definition begins from software problem , proceed to carry out feasibility study , need analysis , essentials design , detailed design, the at
6、last has carried out a testing on the software , entire exploitation process has run through the software engineering knowledge hierarchy. This game is simple, clear interface, easy operation for players.Key words:game design;calculate way;several;event;QT ii 目 录摘要iABSTRACTii目 录31绪 论11.1 开发目的11.2 俄罗
7、斯方块游戏的现状11.3 研究的主要内容21.4 研究的意义22 可行性研究42.1 设计目的42.2 软件问题定义42.3 可行性分析42.3.1技术可行性42.3.2经济可行性42.3.3操作可行性52.3.4法律可行性52.4 结论意见53需求分析63.1 引言63.2游戏功能分析63.2.1 系统概述63.2.2 系统运行环境73.3 游戏的UML基本模型73.3.1 游戏的用例图73.3.2 游戏的状态图83.3.3 游戏的活动图94游戏详细设计114.1 图形实体类TetrixPiece实现114.1.1 图形的产生114.1.2 图形的旋转124.2 游戏内容的实现134.2.1
8、 游戏实现控制方式134.2.2 方块下移134.2.3 满行及消行判断144.2.4 绘制游戏区域及方块144.2.5 键盘事件响应144.3 游戏主窗体的实现145代码分析165.1 Tetrix工程165.2 main.cpp主程序代码:165.3 tetrixboard.h头文件代码:175.4 tetrixboard.cpp程序代码:185.4.1游戏初始化,复位的实现185.4.2 游戏开始与暂停195.4.3 按键控制游戏205.4.4计时模块215.4.5 方块的活动215.4.6 过关与奖励225.4.7 方块颜色控制235.5 tetrixpiece.h头文件代码:245.
9、6 tetrixpiece.cpp程序代码:255.7 tetrixwindow.h头文件代码:265.8 tetrixwindow.cpp程序代码275.8.1显示框275.8.2功能按钮275.8.3信号与槽285.8.4游戏面板布局286整体测试296.1游戏运行测试296.2游戏界面测试296.3界面功能测试306.4 测试总结33结 论34致 谢36参考文献37外文原文39中文翻译471绪 论1.1 开发目的在现金电子信息高速发展的时代,电子游戏已深入人们的日常生活,由于经典有趣,因而得到了广泛的流行,成为老少皆宜的娱乐方式。俄罗斯方块是一款风靡全球的游戏,最初是由苏联人制作的,规则
10、简单,容易上手且游戏全过程变化无穷,可以让玩家充分感受游戏中的乐趣。俄罗斯方块游戏可以说是随计算机的发展而发展,并不断推陈出新演变出各种类似游戏, 深受广大玩家喜爱。这个游戏有的简单, 有的复杂, 但其根本原理是一样的都是对运动的方块进行组合, 来训练玩家的反应能力。谈到游戏软件, 大多数人都认为其神妙莫测, 高不可及。而一般游戏软件也确实具有很高的技术难度, 随着开发工具及软件开发方法学的不断发展, 动手开发游戏也不是十分困难的。俄罗斯方块游游戏软件不计其数, 网上就有好多关于实现的复杂算法和设计, 其难度让一般初学者望而却步。而俄罗斯方块是编程的入门项目,它可以检验编辑人员的知识熟练程度。
11、在游戏设计方面,俄罗斯方块游戏的设计工作既复杂又富有挑战性,它包含的内容多,涉及的知识广泛,与图形界面联系比较大。 游戏是一种新兴的媒体,是一种新的设计领域,也是一种新的艺术形式。同时开发电脑游戏可以提高学生研究和学习的兴趣,培养他们通过互联网收集和获得信息、分析整理信息、撰写报告论文等能力。俄罗斯方块的开发无疑是给电脑游戏的增加了色彩,拓宽了电脑游戏的平台,给人们带来乐趣。1.2 俄罗斯方块游戏的现状小方块的魅力经久不衰。截至2009年,俄罗斯方块发售了125亿份,受到50多个国家和地区的玩家喜爱,有超过50种语言的版本,运行在几十种游戏平台 上,从掌机、街机、个人电脑,到手机和PDA。美国
12、蓝色行星软件公司总裁亨克罗杰斯说,移动设备已经成为俄罗斯方块新的主要平台,该领域的发售量已超过7500万份,并且还在快速增长。在俄罗斯方块网络版的北美和欧洲官方网站上,每天超过100万人次玩这个游戏。俄罗斯方块成功的奥妙在哪里?它的创造者帕基特诺夫认为,可能在于这个游戏非常简单,而且拼图的过程有“从混乱中寻找秩序”的成就感。罗杰斯则说,俄罗斯方 块是一个建设性的游戏,这一点与中国的围棋相似,“国际象棋就是杀杀杀,围棋则重视构建领地,是建设性的,俄罗斯方块也是”。25年过去了,电脑业和电子游戏业都发生了巨大变化,拥有华丽画面、震撼音效和丰富剧情的大型游戏包括网络游戏纷纷出现,开辟并占据了新的市场
13、。俄罗斯方块这样的游戏还有前途吗?帕基特诺夫认为还很有前途。他说,俄罗斯方块是一个休闲游戏,它面对的是那些没有精力或兴趣玩大型游戏的玩家,这些人需要一类简单好 玩的游戏,拿起来就能进入状态,在忙碌的生活中寻求片刻放松。帕基特诺夫表示,将对俄罗斯方块进行改进,使人们能够更容易从中获得休闲乐趣。罗杰斯说,今后的努力方向包括发展俄罗斯方块的竞技性,开发能够适应玩家特点的“智能”俄罗斯方块,并使来自世界各地、说不同语言的人们能够一起娱乐,通过这个游戏寻求共同点。对于中国市场,现在俄罗斯方块已集成到即时通讯软件中国腾讯QQ中,即为火拼俄罗斯。另外,联众世界也有单机版的俄罗斯方块和网络版的俄罗斯方块。由此
14、看来,俄罗斯方块经典还将继续。1.3 研究的主要内容俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人Alex Pajitnov制作的,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个俄罗斯方块时代。 从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我在设计中在一个图片框中构造了一些的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我总共设计了7种造型,每种造型又可以通过旋转而变化出24种形状,利用随机函数在一个预览窗体中提
15、前展示形状供用户参考,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,最后就可以得出用户的分数。1.4 研究的意义那么研究基于Qt的俄罗斯方块游戏有什么意义呢?虽然目前俄罗斯方块游戏已经有各种语言的不同版本,并且已经将其搬上了网络的平台,单人、双人单机对战和双人网络对战等各种模式均已被大众熟知。由于开发平台不统一,造成软件的管理和使用极不方便,并且容易受到软硬件环境更新的影响,限制了这些新技术在科研生产中发挥更好的作用.如果舍弃原有软件而重新开发,将会耗费大量的人力和资金,而且浪费了许多成熟的软件
16、成果。而Qt在源代码级上实现了跨平台特性,极大的支持了跨平台通用软件的开发。Qt可以用同一个源程序在不同平台上编译链接,生成目标代码,并取得相同的运行效果,称为“一次编写,随处编译”,利用这种方法充分实现了程序的跨平台运行。这种基于源代码的跨平台特性不仅解决了性能的问题,而且可以发挥各个平台的优势,充分利用每个平台自身的特点;并且即可以在新环境下实现原有软件的功能和特点,减少开发费用,还可以改进原有软件的不足,增加新的需求,从而提高软件的质量,延长软件生命期。因此,利用Linux下基于Qt的应用程序开发是一个非常有意义的课题,具有重要的研究和商业价值。另外,通过本游戏的设计,检验了学习效果和动
17、手能力,进一步深入Qt的学习,提高自己的编程水平,从而达到理论与实践相结合的目的。 在成为一个真正的游戏开发者的路上,俄罗斯方块是一个完美开始。为什么?因为它包括任何一个游戏中所有的元素。并且,不需要艺术家般的才能就能做出非常好看的俄罗斯方块游戏。任何一个能画出方块的人,每个作图形程序的人,就能做出商业品质的俄罗斯方块游戏。 以俄罗斯方块开始还有另外一个好处,不仅能做出一个完整的既好玩又容易上瘾游戏,而且它看上来和那些商业版本没什么区别。方块就是方块,不管是谁画出它们的,而且tetraminos(俄罗斯方块中使用的形状)也不过是一些方块的组合。 俄罗斯方块拥有所有游戏共通的独立成份。它有一个游
18、戏循环(这个过程被反复执行直到游戏退出)。这个游戏循环读取玩家的输入,处理这个输入,然后更新游戏的元素(下落的tetraminos),并且检查是输还是赢。 以后要做的所有的简单的游戏都要用到这些东西,所以学习这个过程并且实现它是非常重要的。当第一次完成它之后,以后再做游戏时就能看出那个游戏有多难以及要花多长时间。如果没有完整的完成过这些,哪怕一次,就永远不能完整地正确领会其中的每个元素。当做大的项目时,就更不能确定其复杂性及所要的时间。如果甚至不能正确地领会这整个过程(因为你没能完成它),可能是没能建立一个合适的时间表或估计合适的时间,更有可能的是不够努力。 还有,玩俄罗斯方块可以练习人的反映
19、能力,开始时快速的下降会让人手无足措,但适应了之后就会发现自己的反应力变的很快了。另外长时间的手指活动可以让人血液流通加快有利健康。还有俄罗斯方块高手都知道要想赢,就要有远大的布局,决不能只局限于一点一点的减,这在无形中就提高了人的智慧。 2 可行性研究2.1 设计目的通过俄罗斯方块的设计,综合自己在校以及在杰普公司实习期间所学的理论知识,使自己熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,初步掌握软件工程的系统理论,进一步巩固和加强自身对C与C+基础知识的理解,提高自己的编程水平,从而达到理论与实践相结合的目的。2.2 软件问题定义基本要求:本游戏开发的总体任务是实现游戏
20、的可操作性,以及界面的美观性。整个开发过程遵循软件工程规范,采用MFC编程来实现界面以及事件的控制,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,通过菜单栏中的相应菜单选项实现游戏的开始、结束、变换方块、积分以及等级的功能。目标:通过本游戏的开发,主要实现游戏的可操作性以及美观性,同时使自己对C+语言的了解更进一层,为将来的实际工作打下坚实的基础。条件、假定和限制:由于知识以及能力的限制,本游戏所实现的功能不够强大,可对本游戏进行改善,从而增强游戏的功能。可行性研究的方法:通过研究分析俄罗斯方块所具备的能力及实现的方法、确定主体结构。利用现阶段我所能达到的能力,以最简洁、最容易的办法
21、,边开发边测试边修改,实现一个初级游戏软件。评价尺度:由于本软件是一个初级产品,对其要求不是太苛刻,所以能够达到俄罗斯游戏的一般功能即可。2.3 可行性分析2.3.1技术可行性开发本游戏的编程语言有多种,考虑到自身对语言的掌握程度,选择C+语言进行游戏的开发,采用GUI编程来实现界面以及事件的控制。2.3.2经济可行性本游戏是为丰富人们业余生活开发的,规模适中,工作复杂性低,实用性强。从开发人力、物力、时间上考虑,开发成本少。而且利用C与C+程序,加快了开发进度,大大的缩短了开发周期,节省了人力、物力、时间,提高了项目开发的效率,降低了开发成本。由于需求分析完整,减少了很多后期维护的复杂性。另
22、外,本系统具有很实用的现实意义。因此,从经济角度考虑在线考试系统的开发在经济上是完全可行的。2.3.3操作可行性本游戏是采用QT下的GUI ( 图形用户界面) 组件创建的简单有好的操作界面,运行也效果简单明了,所有功能均根据基本需求进行开发。强调人机环境三者作为一个系统进行总体设计。使操作更人性化,减轻了用户的认知负担,使其更适合用户的操作需求。对所有数据的输入进行完整性和合法性检查,尽量减少误操作。因此在操作上是可行的。2.3.4法律可行性本游戏的开发主要为了完成毕业设计,开发的主体是个人,不存在法律上的侵权行为,也不会为社会造成影响,这方面是完全可行的。2.4 结论意见综上所述,本游戏软件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学位 论文 基于 qt 俄罗斯方块 游戏 设计 实现
限制150内