《基于Qt的连连看游戏的设计与开发.docx》由会员分享,可在线阅读,更多相关《基于Qt的连连看游戏的设计与开发.docx(64页珍藏版)》请在第一文库网上搜索。
1、在现今电子信息高速发展的时代,电子游戏已然成为大众最受欢迎的娱乐消遣方式,经典的连连看是个老少皆宜的小游戏,它实现由各式各样的成对图片组成,然后存储在一个二维的数组中,计算机随机产生各种不同类型的图片,根据计算机时钟控制它在一定的时间内随机产生,用户可根据鼠标和回车键点击图片、若两次点击的图片一样,则消掉图片。本文用QT来设计与实现简单的连连看游戏的基本功能,玩家可以在游戏区域中通过键盘控制来选取相同的两个物件,采用特定的消除规则对它们进行消除的操作,当游戏区域中的所有方块对都被消除后玩家即可胜利。文章对该游戏的算法以及游戏图案的绘制进行详细的介绍。实现起来较简单,同时也比较实用。关键词:Qt
2、;游戏设计;算法;数组;信号与槽ABSTRACTIn the current era of rapid development of electronic information,electronic game has become the most popular entertainment popularpastime, 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 twodime
3、nsional array, computer random generation seven different types ofsquare, according to the computer clock control it in certain time keepproduced, the user can according to the keyboard four the direction keycontrol block turns, moves left, move to the right, move down operationand the program accor
4、ding to the seven square are stacked into a differentmodel. And Laura square is based on square in Russia, give the Russiansquare new challenge pattern, its inspiration from the network anotherkind of popular video games-tomb raider. Players to the identity of theadventurers into the game, players n
5、eed only to a certain score, canchallenge higher difficulty levels of the game, of course, if you are good,you will have the chance to open the mysterious hide organs, the morefull of imagination and stimulation of play will wait for you take yourchallenge.Key words: Qt; Game design; Algorithm; Arra
6、y;Signals and slots.目录摘要IABSTRACTII第一章绪论31. 1游戏背景31.2游戏概述3第二章方案论证51.1 选择开发语言5第三章需求分析133. 1软硬件需求133.2游戏功能需求13第四章游戏总体设计154. 1总体设计154.2游戏开始模块设计154. 3游戏设置模块设计164.4游戏核心模块的设计 16第五章具体实现185.1 模型层设计185.2 视图层设计185.3 其它相关技术的实现 19第六章游戏测试206. 1按键事件的功能测试 206.2 图片消失测试206.3 声音和显示测试206.4 测试结果分析21总结21致谢23参考文献24附录源代码2
7、5解放东路课时费老师打款回复了第一章绪论1.1 游戏背景说到连连看,就不得不从经典小游戏说起,连连看是一款古老的风靡全球的经典游戏,它最早出现在PC机上,我国的用户都是通过红白机了解、喜欢上它的,相信有很多人到现在还是对它念念不忘的。无可争议,连连看是有史以来最伟大的游戏之一。在曾经发布过的所有游戏中,连连看还被认为是仅有的一个能够真正吸引广泛人群的作品,曾今造成的轰动与经济价值可以说是游戏史上的一件大事,它看似简单却变化无穷,令人着迷,相信大多数玩家都还记得为它痴迷得茶饭不思的那个连连看时代。但是随着网络信息的高速发展,连连看也要跟随时代的发展,以满足大众的需要。到如今,网络上已经出现了各种
8、不同版本的连连看,它赋予玩家冒险家的角色,不断挑战你的想象,其全新的设计,创新的玩法,为经典的连连看蒙上了一层更加神秘的色彩。1.2 游戏概述1.2.1 游戏简介游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局
9、的计算机软件著作权登记证书。随着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编程,不可能深入Ring。编程,不能嵌套汇编;而且面向对象的特性差;网络功能和数据库功能也没有非常突出的表现,综
12、上所述,VB作为一种可视化的开发工具由于其本身的局限性,导致了它在未来软件开发中逐步被其他工具所代替。2.1.2 C+的特点C/C+的哲学就不一样了,同一份程序代码,只要在该平台重新Compile成该平台的执行档,就能在该平台执行,若文字模式下的程序,的确可以跨平台,程序完全不需修改,但GUI盛行以后,由于各GUI的Library都不一样且没有标准,所以GUI程序并没办法跨平台Compile,因为各平台都有专属的Libraryo但是C/C+优势就是执行速度快,若能解决GUI Library的问题,则跨平台即可解决。除了 GUI Library需要统一外,还得看该Library设计的好不好才行,
13、Linux GUI我没写过就不说了,若在Windows平台,Borland的C+ Builder使用 Delphi 的 VCL Library,Microsoft 的 Visual C+可以用 MFC 和.NETFramework,首先来看 Borland 的 C+ Builder,它使用标准的 ANSI C+语言开发,利用VCL写出来的程序也算蛮漂亮的,执行速度很快,比较麻烦的是C+ Builder当初为了缩短上市时间,并没有设计自己的Library,而是藉用Delphi 的 Library,导致 C+ Builder 在 Compile 时,是先用 Delphi 的Compiler 将 V
14、CL 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+语言,所以语言部分不是问题,但若你看过用MF
15、C写的程序,你一定会惊讶为什么这么复杂,程序代码非常冗长不好看,且MFC是有名的难学,若Visual C+搭配.NET Framrwork,则无法使用ANSI C+,得用其.NET平台版本的C+/CLL相信这点很多人就有意见了,不过. NET Framework由于设计的不错,所以写出来的程序相当精简漂亮,感觉和C+ Builder差不多,不过无论是C+ Builder或Visual C+开发的GUL所开发出来的程序都无法跨平台,当然也无法跨平台Compile。2.1.3 Java的特点Java具有安全性、可移植性、多线程机制以及跨平台的良好特性,但是由于本人对Java语言不是很熟悉,所以此方案也予以否决。2.1.4 Qt的特点Qt拥有一个单一的Library,让你开发各种不同平台的程序,目前支持Windows、LinuxMac UNIX、Embedded Linux,讲白话点,就是它提供了一个Library让你开发GUI程序,写好之后,只要在各平台重新Compile