毕业设计(论文)基于Qt的连连看游戏的设计.doc
《毕业设计(论文)基于Qt的连连看游戏的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于Qt的连连看游戏的设计.doc(62页珍藏版)》请在三一办公上搜索。
1、摘 要在现今电子信息高速发展的时代,电子游戏已然成为大众最受欢迎的娱乐消遣方式,经典的连连看是个老少皆宜的小游戏,它实现由各式各样的成对图片组成,然后存储在一个二维的数组中,计算机随机产生各种不同类型的图片,根据计算机时钟控制它在一定的时间内随机产生,用户可根据鼠标和回车键点击图片、若两次点击的图片一样,则消掉图片。本文用QT来设计与实现简单的连连看游戏的基本功能,玩家可以在游戏区域中通过键盘控制来选取相同的两个物件,采用特定的消除规则对它们进行消除的操作,当游戏区域中的所有方块对都被消除后玩家即可胜利。文章对该游戏的算法以及游戏图案的绘制进行详细的介绍。实现起来较简单,同时也比较实用。关键词
2、:Qt;游戏设计;算法;数组;信号与槽ABSTRACTIn the current era of rapid development of electronic information, electronic game has become the most popular entertainment popular pastime, classic Russian square is a enjoyed by young and old little game, it achieved by four square of color piece, and then stored in a t
3、wo dimensional array, computer random generation seven different types of square, according to the computer clock control it in certain time keep produced, the user can according to the keyboard four the direction key control block turns, moves left, move to the right, move down operation and the pr
4、ogram according to the seven square are stacked into a different model. And Laura square is based on square in Russia, give the Russian square new challenge pattern, its inspiration from the network another kind of popular video games-tomb raider. Players to the identity of the adventurers into the
5、game, players need only to a certain score, can challenge higher difficulty levels of the game, of course, if you are good, you will have the chance to open the mysterious hide organs, the more full of imagination and stimulation of play will wait for you take your challenge.Key words:Qt; Game desig
6、n; Algorithm; Array;Signals and slots.目录摘 要IABSTRACTII第一章 绪 论21.1 游戏背景21.2 游戏概述2第二章 方案论证42.1 选择开发语言4第三章 需求分析113.1软硬件需求113.2游戏功能需求11第四章 游戏总体设计134.1 总体设计134.2 游戏开始模块设计144.3 游戏设置模块设计144.4 游戏核心模块的设计15第五章 具体实现165.1模型层设计165.2 视图层设计175.3 其它相关技术的实现18第六章 游戏测试196.1 按键事件的功能测试206.2 图片消失测试206.3 声音和显示测试206.4 测试结果
7、分析20总 结21致 谢22参考文献23附录 源代码24第一章 绪 论1.1 游戏背景说到连连看,就不得不从经典小游戏说起,连连看是一款古老的风靡全球的经典游戏,它最早出现在PC机上,我国的用户都是通过红白机了解、喜欢上它的,相信有很多人到现在还是对它念念不忘的。无可争议,连连看是有史以来最伟大的游戏之一。在曾经发布过的所有游戏中,连连看还被认为是仅有的一个能够真正吸引广泛人群的作品,曾今造成的轰动与经济价值可以说是游戏史上的一件大事,它看似简单却变化无穷,令人着迷,相信大多数玩家都还记得为它痴迷得茶饭不思的那个连连看时代。但是随着网络信息的高速发展,连连看也要跟随时代的发展,以满足大众的需要
8、。到如今,网络上已经出现了各种不同版本的连连看,它赋予玩家冒险家的角色,不断挑战你的想象,其全新的设计,创新的玩法,为经典的连连看蒙上了一层更加神秘的色彩。1.2 游戏概述 1.2.1 游戏简介 游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产
9、品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”,“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。 1.2.2 游戏功能 本次设计连连看主要是在原连连看对战的基础上设计挑战模式,具体的功能如下所述:(1) 游戏运行界面简单美观,操作简单,运行稳定;(2
10、) 能够根据不同的等级模式播放不同的游戏背景音乐,包括操作方向键、消行时的声音,音量由玩家操作控制;(3) 设计不同的游戏难度,当玩家达到一定的积分,可以进入相关难度的等级;玩家可直接操作界面上的相关按钮来控制游戏的开始、暂停、设置、退出等功能。第二章 方案论证2.1 选择开发语言根据自己以前所学的关于C语言、C+、Java、以及Qt的相关知识,并通过网上查找相关资料,了解到 C、C+、VB、Delphi、C#、Java等均可以现劳拉方块游戏的设计。下面简单介绍下VB、C+、Java、Qt各自的特点:2.1.1 VB的特点全称Visual Basic,它是以Basic语言作为其基本语言的一种可
11、视化编程工具。在中国乃至全世界都能看到它的身影,它曾是在中国最为流行的编程工具,到现在还占据着非常重要的地位,对于它的好坏大家都有一定的了解,VB作为一种较早出现的开发程序以其容易学习,开发效率较高,具有完善的帮助系统等优点曾影响了好几代编程人员,但是由于VB不具备跨平台这个特性,从而也决定了VB在未来的软件开发中将会逐渐地退出其历史舞台;它对组件技术的支持是基于COM和ActiveX,对于组件技术不断完善发展的今天,它也显出了它的落后性;同时VB在进行系统底层开发的时候也是相对复杂的,调用API函数需声明,调用不方便,不能进行DDK编程,不可能深入Ring0编程,不能嵌套汇编;而且面向对象的
12、特性差;网络功能和数据库功能也没有非常突出的表现,综上所述,VB作为一种可视化的开发工具由于其本身的局限性,导致了它在未来软件开发中逐步被其他工具所代替。2.1.2 C+的特点C/C+的哲学就不一样了,同一份程序代码,只要在该平台重新Compile成该平台的执行档,就能在该平台执行,若文字模式下的程序,的确可以跨平台,程序完全不需修改,但GUI盛行以后,由于各GUI的Library都不一样且没有标准,所以GUI程序并没办法跨平台Compile,因为各平台都有专属的 Library。但是C/C+优势就是执行速度快,若能解决GUI Library的问题,则跨平台即可解决。除了GUI Library
13、需要统一外,还得看该Library设计的好不好才行,Linux GUI我没写过就不说了,若在Windows平台,Borland的C+ Builder使用Delphi的VCL Library,Microsoft的Visual C+可以用MFC和.NET Framework,首先来看Borland的C+ Builder,它使用标准的ANSI C+语言开发,利用VCL写出来的程序也算蛮漂亮的,执行速度很快,比较麻烦的是C+ Builder当初为了缩短上市时间,并没有设计自己的Library,而是藉用Delphi的Library,导致C+ Builder在Compile时,是先用Delphi的Comp
14、iler将VCL compile成object file后,再用C+ Builder将你写的C+程序compile成object file,最后再用Linker将所有的object file link起来,由于这都是IDE在做,对程序设计师似乎影响不大,但VCL由于是Delphi的Library,所以若想深入研究VCL的source code时,则必须学Delphi的Pascal才行,否则看不懂VCL source code,这也是很多人对C+ Builder却步的原因。再来看Microsoft的Visual C+,MFC用的是完整的ANSI C+语言,所以语言部分不是问题,但若你看过用MFC
15、写的程序,你一定会惊讶为什么这么复杂,程序代码非常冗长不好看,且MFC是有名的难学,若 Visual C+搭配.NET Framrwork,则无法使用ANSI C+,得用其.NET平台版本的C+/CLI,相信这点很多人就有意见了,不过.NET Framework由于设计的不错,所以写出来的程序相当精简漂亮,感觉和C+ Builder差不多,不过无论是C+ Builder或Visual C+开发的GUI,所开发出来的程序都无法跨平台,当然也无法跨平台Compile。2.1.3 Java的特点Java具有安全性、可移植性、多线程机制以及跨平台的良好特性,但是由于本人对Java语言不是很熟悉,所以此
16、方案也予以否决。2.1.4 Qt的特点Qt拥有一个单一的Library,让你开发各种不同平台的程序,目前支持Windows、Linux、Mac、UNIX、Embedded Linux,讲白话点,就是它提供了一个Library让你开发GUI程序,写好之后,只要在各平台重新Compile后,就可以在各平台执行,而且使用完整的ANSI C+语言,且不限Compiler,只要是C+的Compiler都可以,重要的是,该Library相当漂亮,写出来的程序很像C+ Builder或.NET Framework的那样精简,不会向MFC那样复杂。目前Qt已经到第四个版本,GUI部分算支持的相当完整,且支持数
17、据库、XML、Multi- Thread、Socket等方面的programming。若以后台角度来说,无论后端是什么数据库,只要透过相同的Interface,不同数据库的Class来实做这个Interface,前端GUI的程序写法完全不用改变,同理,面对不同的OS,理论上只要透过相同的Interface,不同OS的Class各自实做这个Interface,前端GUI的程序也完全不用改变,最后只要靠Compiler将程序compile成各平台的原生程序即可,这样即可保证其执行速度,不用再靠Virtual Machine。但很可惜这个理想,这么多年来都没人可以做出来,或许是我孤陋寡闻吧。Qt无疑
18、是GUI终极解决方案,有强力的ANSI C/C+语言背书,又有单一的GUI Library,且精简漂亮,又能Compile成各平台的原生执行档,几乎是最完美的解决方案了。2.1.5 方案的选择经过以上比较好,考虑到Qt的众多良好特性,尤其是其跨平台性,加上自己最近正在学习Qt,为了能够更进一步掌握Qt编程,因此决定使用Qt开发连连看游戏。2.2 Qt关键技术的介绍2.2.1 Qt特点的具体介绍1. 可移植性Qt是一个跨平台GUI工具箱,不仅适用于Unix,它同样适用于MSWindows。如果开发平台是MS Windows,可能选择的GUI工具箱为MicrosoftFoundation Clas
19、ses(MFC),这样就会失去众多的 Unix 用户。相反,如果开发平台是 Unix,可能选择其它工具箱,如Motif等,同样会失去众多的Windows 用户。如果选择的GUI工具箱为Qt,则只要在不同的平台上简单的编译源代码,就可以使原程序在不同的平台上运行,从而解决丢失用户的问题。Qt把在处理不同窗口系统时的潜在问题隐藏了起来。为使Qt使用方便,Qt包含了一系列类,这些类使开发人员避免了在文件处理、时间处理等方面存在的依赖操作系统方面的细节。2. 国际化所谓国际化,通俗的讲,就是指在某国开发的软件可以方便的被其它国家的人使用。Qt为本地化应用提供完全的支持,所有用户界面文本都可以基于消息翻
20、译表被翻译成各国语言。另外,Qt完全支持双字节16 bit国际字符标准。利用Qt开发跨平台的国际化软件是一个方便、增量的过程。在开发过程中,利用Qt的linguist界面工具就能方便的将开发的软件翻译成各国语言,从而实现软件的国际化。3. 面向对象Qt 是一个C+工具箱,它由几百个C+类构成。在程序设计中可以使用这些类,如果Qt没有提供真正适合需求的组件,则可以方便的修改现有的组件或者重新编写组件。Qt具有模块设计和注重软件构件或元素的可重用性的特点。一个组件不需要知道它的内容,而通过Qt特有的signal和slot机制与外界通信、交流。使用Qt进行应用程序的开发,可以充分利用其面向对象和模块
21、化的特征,从繁琐的编程中解脱出来,专注于应用程序本身的实现。4. 可用户化的外观Qt支持主题,所以基于Qt的应用软件能在Motif外观、Windows外观,以及另一些用户化的外观之间互换,甚至改变运行时间。这些应用程序不管是在 X Windows下还是在Microsoft Windows下都可以独立操作、运行。5. 独有的Signal Slot机制Signal Slot机制是Qt最重要的特征。在MS Windows中,程序通过消息机制和事件循环来实现图形对象行为的触发和处理;在Qt中,程序在一个类中定义多个Signal和Slot,Signal就相当于“事件”,而Slot就相当于响应事件的“方法
22、”。为了实现“事件驱动”,需要将一个类的Signal和另一个类的Slot连接起来(使用connect)。采用这种机制是一种安全可靠的方法,它允许回调。并支持对象之间在彼此不知道对方信息的情况下进行合作,这使Qt非常适合于真正的构件编程。6. 开发程序的方便性Qt提供了一个可视化的开发工具Qt Designer,使用该工具就像在Windows中使用Visual C+那样可以直接向项目中添加各种组件,而不需要一步一步地编写代码,这个特点是其它非可视化编程工具望尘莫及的。Qt Designer中包含全面的联机帮助文档,包括超文本方式的Qt Manual,man帮助手册页和补充指南。这些帮助不论是对于
23、初学者还是专业人士,都是非常方便的。7. 强大的功能Qt的强大功能主要体现在以下几方面:拥有一套完整的组件,用户可以直接基于这些现成的组件开发出优秀的界面;拥有丰富的API函数,大概有250多个C+类;具有优越的绘画功能和2D/3D图形润色功能,Qt的绘画工具类Qpainter, 可以在任意一个绘画设备上润色图形,对于更高级的2D/3D图形可以结合使用OpenGL和Qt的组件,使用OpenGL就像用任意一个Qt组件一样方便,而且效果比纯粹使用OpenGL作2D/3D图形更好;支持XML。2.2.2 Qt的类库 Qt类库大致可以分为三个部分:控件,框架和工具。1. 控件控件部分包括环境控件,主窗
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 Qt 连连 游戏 设计
链接地址:https://www.31ppt.com/p-3979893.html