当前位置:首页>> >>


qt劳拉方块游戏设计与实现.rar

收藏

资源目录
    文档预览:
    编号:20180914220935277    类型:共享资源    大小:2.64MB    格式:RAR    上传时间:2018-09-15
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    50
    金币
    关 键 词:
    qt 劳拉 方块 游戏 设计 实现
    资源描述:
    太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸劳拉方块游戏设计与实现摘要劳拉方块是一款老少咸宜的小游戏,和俄罗斯方块类似,其中加入了等级的概念。游戏中的每一块落下的方块都由四个小色块组成,这四个小色块存储在一个数组的四个元素中,计算机随机产生不同类型的七种方块,根据计算机时钟控制它在一定的时间不停的产生。用户可以通过上下左右四个方向键(方向键的事件处理)来实现方块的翻转、向左、向右和向下。然后程序根据这七种方块对叠成不同的模型。论文首先描述了游戏的历史和开发环境,然后完整地展现了软件定义,可行性研究、需求分析、概要设计、详细设计和软件测试,整个开发过程贯穿软件工程的知识体系。此次设计在 Linux 下,以 C++作为开发语言,在 Qt 平台上进行游戏的设计与实现,最终完成了代码部分的全部工作。能够设计出一款小游戏,寓教于乐,对我来说十分有意义。关键词:游戏开发;Qt;控制;C++太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸iLaura box Game Design and ImplementationAbstractLaura box is a game for all ages , and like Tetris , which added the concept of class . Each game consists of a falling block consisting of four small blocks of color , these four small patches stored in an array of four elements , the computer randomly generated seven different types of boxes , according to the computer clock to control it to some time to stop production. Users can up and down the four arrow keys ( arrow keys event processing ) to achieve the box, flip, left, right and down. Then the program based on these seven boxes for Diecheng different models.Paper first describes the game's history and development environment , and then show the complete software-defined , feasibility studies, needs analysis , outline design, detailed design , and software testing throughout the entire development process of knowledge of software engineering.The design under Linux, in C + + as a development language , the Qt platform design and implementation of the game, the final completion of all the work the code section. Able to design a small game , entertaining, very meaningful to me .Keywords: game development; Qt; control;C++ 太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸目录摘要 .............................................................................................................................................iAbstract......................................................................................................................................ii1.绪论 ........................................................................................................................................11.1 课题研究的目的及意义 ...........................................................................................11.2 电子游戏的发展状况 ...............................................................................................11.2.1 电子游戏及其分类 ..........................................................................................11.2.2 电子游戏发展现状 ..........................................................................................21.3 研究的主要内容 .........................................................................................................31.4 研究的目的和意义 .....................................................................................................32. 可行性研究 ...........................................................................................................................52.1 设计目的 .....................................................................................................................52.2 软件的定义 .................................................................................................................52.3 可行性分析 .................................................................................................................52.4 结论意见 .....................................................................................................................53. 需求分析 ...............................................................................................................................63.1 引言 .............................................................................................................................63.2 游戏需求 .....................................................................................................................63.3 开发环境 .....................................................................................................................63.4 接口控制 .....................................................................................................................73.5 方案论证 .....................................................................................................................73.5.1 VB 的特点 ........................................................................................................73.5.2 Java 的特点 .......................................................................................................73.5.3 Qt 的特点 ..........................................................................................................83.5.4 方案的选择 .......................................................................................................83.6 Qt 简介 .........................................................................................................................83.7 Qt 的类库 ...................................................................................................................103.8 Qt 相比其他图形界面库的优点 ...............................................................................103.9 Qt 对象间通讯机制 ...................................................................................................114. 游戏的详细设计 .................................................................................................................134.1 劳拉方块游戏功能图 ...............................................................................................134.1.1 游戏运行流程图 ............................................................................................134.1.2 方块下落得分图 ............................................................................................144.1.3 游戏系统流程结构设计 ................................................................................154.2 图形实体类 TetrixPiece 实现 ..................................................................................154.2.1 图形的产生 ....................................................................................................154.2.2 图形的旋转 ....................................................................................................164.3 游戏内容的实现 .......................................................................................................16太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸4.3.1 关于存储 ........................................................................................................164.3.2 关于七种色块的调用 ....................................................................................174.3.3 关于色块的变形 ............................................................................................174.3.4 关于方块下落 ................................................................................................174.3.5 关于满行及消行判断 ....................................................................................184.3.6 关于绘制游戏区域及方块 ............................................................................184.3.7 关于键盘事件响应 ........................................................................................184.4 游戏主窗体的实现 ...................................................................................................185. 游戏主要功能选项的实现与检验 .....................................................................................205.1 主要功能的验证 .......................................................................................................205.2 游戏快捷键简简介 ...................................................................................................205.3 调试程序 ...................................................................................................................215.4 加载成功,观察效果 ...............................................................................................235.5 代码详解 ...................................................................................................................245.5.1 main.cpp..........................................................................................................245.5.2 tetrixboard.cpp ................................................................................................255.3.3 tetrixpiece.cpp .................................................................................................335.3.4 tetrixwindow.cpp.............................................................................................355.6 总结 ...........................................................................................................................37结束语 ......................................................................................................................................38参考文献 ..................................................................................................................................39致谢 ..........................................................................................................................................40外文原文 ..................................................................................................................................41外文翻译 ..................................................................................................................................53太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸01.绪论1.1 课题研究的目的及意义劳拉方块曾经是一款非常热门的小游戏,频频出现在电视机游戏和掌上游戏里。它简单易上手,但是变化无穷,充满了挑战。相信很多我的同龄人还记得小时候坐在小霸王游戏机前,紧握着游戏手柄,盯着屏幕上的游戏,玩到忘记了吃饭。大部分人应该都是在那个时候接触并喜欢上这款游戏的。人们不仅从这款游戏中得到了乐趣,而且从其中收获了成就感。在游戏设计领域,劳拉方块不仅仅是一款充满其妙体验的小游戏,更是一个启蒙。无数人编写游戏程序都是从劳拉方块开始的,因为这既是一个检验 RAD 开发工具的好方法,也是检验一个人对开发语言、环境和基本数据结构知识熟练程度的便捷途径。本次的设计与实现是在 Linux[1]平台上完成的。1.2 电子游戏的发展状况 游戏最早的雏形,可以追溯到人类原始社会流行的活动:扔石头、投掷带尖的棍子。这些最早的游戏显然是以增强生存技能作为初衷。社会进步后,棋牌类游戏、竞技类游戏甚至电子游戏开始出现。电子游戏是其中的主角之一。劳拉方块在红白机时代曾是电子游戏中的天王之一,我国的用户大部分是通过红白机了解、喜欢上它的,无数人和它一起留在了那个年代。对于普通用户来说,它容易上手,操作简单,且游戏过程中变化无穷,在其多个衍生版本中,更是出现了联机版劳拉方块,使其成为一款竞技游戏,给用户提供了一个展现自己高超水平的场所。劳拉方块随着 PC 机的更迭不断演变,现在已经成为经典。这款游戏的核心是通过不断变化的方块来训练人的反应能力。随着开发工具的更新换代,现在这款游戏已经成为学习软件设计入门的一个经典案例。本文中实现劳拉方块是利用数组作为方块的数据结构 [2],对于初学者可仿照此类方法进行设计,从而了解游戏软件的设计与开发过程。1.2.1 电子游戏及其分类电子游戏,也就是运行在家用电脑、家用电子游戏机或是掌中宝游戏机及街机上的电子游戏程序。电子游戏作为一款互动娱乐型软件,结合了剧情、程序、动画、美术、音乐等技术,从电子游戏的分类来看,有着多种分类方式。按照游戏类型,传统的游戏分类将其分为第一人称射击游戏、角色扮演游戏、即时战略类游戏、策略类游戏等。而按照游戏运行平台的不同,又可以将电子游戏分为手机游戏、在线游戏、单机版 PC 游戏、游戏机游戏、互动电视游戏。现在,虽然未制定标准,但行业内将游戏进行标准分类,分为街机游戏、网络游戏、单机版 PC 游戏、互动电视游戏四大类。论文中采用此标准。在互联网(局域网)技术出现以前,电子游戏都是以单机版游戏的形式出现的。互联网技术出现后,玩家之间实现了同时在线娱乐,电子游戏的一部分步入网络游戏的阵营。所谓“网络游戏” ,是指通过人与人之间的互动达到交流、休太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸1闲和娱乐的目的。网络游戏的实现,大大增加了游戏的互动性、真实性,丰富了电子游戏的内涵。现在,随着计算机与网络技术的发展,电子游戏获得了长足的进步,已经成为当今社会不可缺少的精神食粮。1.2.2 电子游戏发展现状电子游戏最初诞生于美国,一个还在 MIT 就读的学生于 1971 年设计了世界上第一个业务用游戏机 [3],游戏的名字叫做《电脑空间》 。继第一款游戏问世之后,各类游戏开始纷纷被制作出来娱乐玩家。以欧美市场和日本市场最为成功。目前,世界第一大游戏市场仍是美国,其遵循以发行商为主的产业开发链模式,根据美国市场调查公司 NPD Group 调查统计,美国 2006 年游戏总销售金额(包括家用、掌上型主机及软件)为 137 亿美元,占了全球游戏市场的 43%。日本的游戏市场也是渊源已久。从上世纪六十年代初的街机,到六七十年代的家用游戏机,再到八九十年代的掌上游戏机,经过 30 多年的发展,如今的日本游戏产业已经成为第一娱乐产业,电玩业已经变成国家的经济支柱之一,每年占到 GDP 的1/5。韩国则是当今网络游戏产业最发达的国家之一。如今国内市场超过 60%的游戏产品都来自韩国的游戏软件开发商。韩国的游戏产业一度得到政府的大力支持。由文化观光部出面组建韩国游戏支援中心 [4],向韩国游戏产业提供从资金到技术上的多方面支援;成立游戏投资联盟,政府每年向游戏产业投入的资金多达500亿韩元,并为游戏企业提供长期的低息贷款;设立信息化基金和文化产业基金,为游戏产业服务;对指定的风险企业实行各种税制优惠政策,减少甚至免除游戏企业的税务负担;建设游戏产业基地以扶持中小游戏企业的发展;对从事游戏产业的高科技人才免除两年的兵役。此外,韩国还开设了众多的游戏院校,以大力培养游戏人才,从而为游戏生产提供了基础保障。与电子游戏发达的国家相比,在电子游戏方面,我国还与它们存在较大的差距。目前,我国的游戏市场正处在发展阶段,但在市面上流动的游戏软件主要还是来自于美国、日本、韩国等地,但在一些政策和市场的机遇下,国内的厂家正在蓬勃发展,国产原创游戏即将成为游戏的发展主流。中国的游戏产业经过 80 年代初期台湾厂商的探索至 90 年代,开始了自己的研发、发行的历程,直至网络游戏的风行,中国的网络游戏开始有了飞速的发展。 1983 年,智冠科技有限公司在中国台湾成立,为全球第一家签订授权重制中文版产品代理销售合约的公司,2000 年智冠在台湾股票上市, 2002 年其控股的中华网龙在台湾上市。1996 年底,UBI SOFT 上海分公司暨上海育碧电脑软件有限公司成立。同年,全球游戏软件领军企业 EA 在中国上海成立办事处。1997 年,由尚洋公司制作的《血狮》正式上市。 1997 年,北京新天地互动多媒体技术有限公司成立,该公司引进了《古墓丽影 III》 (TombRaider III ) 、 《盟军敢死队》等著名欧美游戏,并在 1999 年在中国率先掀起“游戏软件价格革命” ,全面推行 50 元的价格体系,从此正版游戏价格开始贴近大众消费者。 1999 年,业内估算中国电脑游戏市场(正版)约 1.5 亿元人民币。 2000 年,大陆华彩软件代理发行第一款中文 MMORPG《万王之王》正式推出,该游太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸2戏于 1999 年在台湾发行,由台湾雷爵资讯(Lager)开发。也在 2000 年,继《万王之王》 、《石器时代》 、 《网络三国》在台湾上市之后,游戏桔子推出了《天堂》 ,游戏桔子成立于 1995 年,1999 年以《便利店》在台湾奠定了地位。 《天堂》这款由韩国著名游戏公司 Ncsoft 研发的网络游戏不但在本国大获成功,也在台湾再次夺冠。 2001 年初,北京华义在中国大陆地区正式推出了《石器时代》 ,华义国际股份有限公司于 1993 年在台北成立,2001 年在台湾股票上市。 《石器时代》成为大陆当时最流行的网络游戏。2001 年,天人互动软件技术有限公司在北京成立。当年与 SEGA 结成 PC 游戏业务的战略合作关系,发行了《樱花大战Ⅱ》 《文明Ⅲ》 《无冬之夜》等经典游戏,2002 年,引进在欧美网络游戏《魔剑》 (Shadow Bane) ,这是首款在中国测试的欧美网络游戏。 2001 年 5 月, “联众世界”经过 3 年多的迅速成长,以同时在线 17 万人、注册用户约1800 万的规模,成为当时世界用户数量第一的在线游戏网站。2005 年 1 月 21 日,中央电视台报道:我国网络游戏产业当年增加了 50%,今后几年都将以 50%以上的速度增长;第一届中国网络游戏年会报道:中国国内网络游戏2004 年规模达 24.7 亿元,2009 年规模将达到 109.6 亿元。1.3 研究的主要内容俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人 Alex Pajitnov 制作的,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个俄罗斯方块时代。 从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我在设计中在一个图片框中构造了一些的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我总共设计了 7 种造型,每种造型又可以通过旋转而变化出 2 到 4 种形状,利用随机函数在一个预览窗体中提前展示形状供用户参考,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,最后就可以得出用户的分数。1.4 研究的目的和意义那么研究基于 Qt 的劳拉方块游戏有什么意义呢?虽然目前劳拉方块游戏已经有各种语言的不同版本,并且已经将其搬上了网络的平台,单人、双人单机对战和双人网络对战等各种模式均已被大众熟知。由于开发平台不统一,造成软件的管理和使用极不方便,并且容易受到软硬件环境更新的影响,限制了这些新技术在科研生产中发挥更好的作用.如果舍弃原有软件而重新开发,将会耗费大量的人力和资金,而且浪费了许多成熟的软件成果。而 Qt 在源代码级上实现了跨平台特性,极大的支持了跨平台通用软件的开发。Qt可以用同一个源程序在不同平台上编译链接,生成目标代码,并取得相同的运行效果,称为“一次编写,随处编译” ,利用这种方法充分实现了程序的跨平台运行。这种基于源代码的跨平台特性不仅解决了性能的问题,而且可以发挥各个平台的优势,充分利太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸3用每个平台自身的特点;并且即可以在新环境下实现原有软件的功能和特点,减少开发费用,还可以改进原有软件的不足,增加新的需求,从而提高软件的质量,延长软件生命期。因此,利用 Linux 下基于 Qt 的应用程序开发是一个非常有意义的课题,具有重要的研究和商业价值。另外,通过本游戏的设计,检验了学习效果和动手能力,进一步深入 Qt 的学习,提高自己的编程水平,从而达到理论与实践相结合的目的。在成为一个真正的游戏开发者的路上,劳拉方块是一个完美开始。为什么?因为它包括任何一个游戏中所有的元素。并且,不需要艺术家般的才能就能做出非常好看的劳拉方块游戏。任何一个能画出方块的人,每个作图形程序的人,就能做出商业品质的劳拉方块游戏。以劳拉方块开始还有另外一个好处,不仅能做出一个完整的既好玩又容易上瘾游戏,而且它看上来和那些商业版本没什么区别。方块就是方块,不管是谁画出它们的,而且 tetraminos(劳拉方块中使用的形状)也不过是一些方块的组合。劳拉方块拥有所有游戏共通的独立成份。它有一个游戏循环(这个过程被反复执行直到游戏退出) 。这个游戏循环读取玩家的输入,处理这个输入,然后更新游戏的元素(下落的 tetraminos) ,并且检查是输还是赢。以后要做的所有的简单的游戏都要用到这些东西,所以学习这个过程并且实现它是非常重要的。当第一次完成它之后,以后再做游戏时就能看出那个游戏有多难以及要花多长时间。如果没有完整的完成过这些,哪怕一次,就永远不能完整地正确领会其中的每个元素。当做大的项目时,就更不能确定其复杂性及所要的时间。如果甚至不能正确地领会这整个过程(因为你没能完成它) ,可能是没能建立一个合适的时间表或估计合适的时间,更有可能的是不够努力。还有,玩劳拉方块可以练习人的反映能力,开始时快速的下降会让人手无足措,但适应了之后就会发现自己的反应力变的很快了。另外长时间的手指活动可以让人血液流通加快有利健康。还有劳拉方块高手都知道要想赢,就要有远大的布局,决不能只局限于一点一点的减,这在无形中就提高了人的智慧。 太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸42. 可行性研究2.1 设计目的通过本游戏的设计,结合自己在杰普软件所学到的知识,设计开发劳拉方块游戏,能培养自己的动手和思考能力,初步掌握软件工程的系统理论,加强自身对 Qt 基础编程知识的理解,提高自己编写程序的水平,从而达到理论与实践相结合的目的。2.2 软件的定义该游戏软件开发的主要任务是实现游戏的可视化界面操作。开发过程遵循工程开发规范,采用 C++来实现界面和事件的控制,用户可以通过菜单栏的相应选项和上下左右四个方向键对游戏进行可视化的操控。游戏的开始、结束、方块变换、积分以及等级等功能都可以通过这些来进行调节。本游戏开发过程中还有很多生疏和疑问,实现的功能也较为简单,旨在能更好地了解 C++的编写技巧和规范,为今后的工作积累经验。2.3 可行性分析(1)技术可行性:C++语言中集成了很多标准类库,可以直接调用,Qt 中大量的图形界面库和优良的封装和跨平台机制,使得实现界面的可视化以及事件的操控简单了很多。(2)经济可行性:本游戏的开发旨在提升自己的语言逻辑水平,完成毕业设计,考虑到的其他因素并不多,外界阻力很小,对经济要求不高。(3)社会可行性:本游戏设计完成后仅作毕业设计和私人使用,且设计内容健康,不会违反法律,不会对社会造成不良影响。2.4 结论意见综上所述,本游戏软件的技术成熟、完备。各方面均无重大问题,因此本游戏软件可开始着手编写。太 原 理 工 大 学 毕 业 设 计 (论 文 )用 纸53. 需求分析3.1 引言对软件需求完全理解对于软件开发工作的成功是至关重要的,需求说明的任务是发现、规范的过程,有益于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,便于采用工程方法开发软件,提高软件的质量,便于开发人员、维护人员、管理人员之间的交流、协作,并作为工作成果的原始依据,并且在向潜在用户传递软件功能、性能需求,使其能够判断该软件是否与自己的需求相关。3.2 游戏需求28 种状态的方块随机产生,自由下落,落下时可由玩家用上、下、左、右控制键控制翻转和移动,以便以玩家所需要的形态和位置落下。如果落下时,方块的方格能填满某一行,则这一行可消去。消去一行后,游戏可给玩家加分,若由存在空格的方块填满整个窗口,则游戏失败。游戏功能需求如下:游戏界面需求:设计良好的游戏界面可以让玩家充分感受到游戏带来的娱乐性,在设计好的一定的区域内运动和变形,不同的色块让其拥有不同的颜色,这样看起来会有一定的美感。游戏形状需求:用数组作为存储方块 8 种状态的数据结构,即长条形、Z 字形、反 Z 形、田字形、7 字形、反 7 形、
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:qt劳拉方块游戏设计与实现.rar
    链接地址:http://www.gold-doc.com/p-158454.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开