《基于Qt的俄罗斯方块的设计与开发.docx》由会员分享,可在线阅读,更多相关《基于Qt的俄罗斯方块的设计与开发.docx(43页珍藏版)》请在第一文库网上搜索。
1、内容摘要俄罗斯方块是个比较经典的小游戏,它实现由四块正方形的色块组成,然后存储在一个数组的四个元素中,计算机随机产生不同七种类型的方块,根据计算机定时器控制它在一定的时间不停的产生,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,(用信号和槽函数的关联来实现对按键事件的控制)。然后程序根据这七种方块堆叠成各种不同的模型。本设计大体分以下三部分:第一部分是简介,用基本方法实现自己的俄罗斯方块游戏,介绍游戏的基本概况及要实现的功能。第二部分是功能演示,验证游戏可否按预想方案运行,验证运行流畅度,图形界面的美观度。第三部分是代码分析,这里将展示整个游戏编程代码及接口函数。本次设计用到的工具是
2、基于UBUNTU下的QT软件,图行界面的处理都是代码实现。关键词数组;定时器;信号;槽函数;QTDesign and implementation of Tetris, based on the QTName: YiwenboTeacher : WangyiqinAbstractTetris is a classic game, it consists of four square blocks of color, andthen stored in an array of four elements, the computer randomly generatedbox of the sev
3、en types, according to the computer timer control it stop toproduce a certain amount of time, according to the four directions of thekeyboard keys to control flip, left, right and down operation (signal and slotfunctions associated with control of key events). The program then based onthese seven bo
4、x stacked into a variety of different models. This design isgenerally divided into the following three parts: The first part is theintroduction to the basic methods to achieve their own game of Tetris. Thesecond part is the functional demonstration; verify that the game please runthe desired program
5、. The third part is the game analysis, will show the entiregame programming code and an excuse to function. The design tool used isbased on the QT under UBUNTU software, the graph line interfaceprocessing is code to achieve.Key wordsarray; cell function; timer; signal; Qt弓1言一1一第一部分简介一3-1. 1游戏功能-3-1.
6、2游戏界面与控制-3-1. 2. 1 游戏窗口-3-2. 2. 2 方块形犬一4-1.2.3键盘处理事件-4-124显不需求一4-第二部分功能展示-5-3. 1打开游戏-5-3.2 进入游戏-6-3.3 游戏过关-6-3.4 游戏暂停-7-3.5 游戏退出-8-第三部分代码分析一8-4. 1 Tetrix 工程-8-5. 2 tetrixboard. h -9-6. 3tetrixpiece. h一10一7. 4tetrixwindow. h-11-8. 5main, cpp-12-3. 6 tetrixpiece. cpp一13一3. 7 tetrixwindow. cpp-14-3. 7.
7、 1 显不框一14一3. 7.2功能按钮-15-3. 7.3信号与槽-16-3. 7.4游戏面板布局-16-3. 8etrixboard. cpp-17-3. 8. 1游戏初始化,复位的实现-18-3. 8.2游戏开始与暂停-19-3. 8.3按键控制游戏-22-3.8.4计时模块-23-3. 8.5方块的活动-24-3. 8.6过关与奖励-25-3. 8.7方块颜色控制-28-总结一30一致谢-30-参考文献一30-基于QT的俄罗斯方块的设计与实现081308233易文波指导教师:王义琴讲师引言Qt是一个1991年由奇趣科技开发的跨平台C+图形用户界面应用程序开发框架。它既可以开发GUI程式
8、,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是面向对象语言,易于扩展,并且允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。Qt 支持下述平台:MS/Windows-95. 98、NT 4.0. ME、2000、XP、Vista 和 Win7 Unix/Xll - Linux、 Sun Splaris、 HP-UX、 CompapTru64UNIX、IBM AIX、SGI IRIX、FreeBSD. BSD/OS 和其它很多 Xll 平台Macintosh - Mac OS X Embedded -有帧缓冲(framebuffer)支持的嵌
9、入式 Linux 平台,Windows CEOQt具有以下优势:面向对像,Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。丰富API, Qt包括多达250个以上的C+类,还提供基于模板的collections , serialization , file ,1/0 device , directorymanagement, date/time类。甚至还包括正则表达式(在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符
10、串的单个字符串。)的处理功能。支持2D/3D图形渲染,支持OpenGL大量的开发文档XML支持Webkit引擎的集成,可以实现本地界面与Web内容的无缝:集成。俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。俄罗斯方块游戏可以说是随计算机的发展而发展,并不断推陈出新演变出各种类似游戏,深受广大玩家喜爱。这个游戏有的简单,有的复杂,但其根本原理是一样的都是对运动的方块进行组合,来训练玩家的反应能力。俄罗斯方块最早还是出现在PC机上,而我国的用户都是通过红白机了解、喜欢上它的。现在QQ等游戏平台又将重新掀起这股让人沉迷的俄罗斯方块风
11、潮。对一般用户来说,它的规则简单,容易上手,且游戏过程变化无穷,而在游戏平台上的对战模式更增加了它的娱乐性和挑战性,使用户既能感受到游戏中的乐趣,也给用户提供了一个展现自己高超技艺的场所。本设计利用数组作为方块的数据结构,提出一种用C语言和C+来实现的方法,实现基本的方块游戏功能,虽然不能实现联网对战功能,但是可以通过设计实现本游戏巩固所学知识,增强动手能力,了解并熟悉游戏软件的设计与开发过程。本设计基于Qt,实现基本的方块游戏,所有图形界面均由代码实现。通过验证各图形界面良好实现,游戏流畅运行。第一部分简介1.1 游戏功能随机产生不同的形状(长条形、Z字形、反Z形、田字形、7字形、反7形、T
12、字型)下落填充给定的区域,若填满一行便消掉,相应区域计数,此时分数有奖励,每消一行奖励十分,当方块出现一定的个数时,过关,设置多个关卡,每关方块下落的速度不同,第一关默认下降速度500ms (0.5s),以后每过一关速度递加,增加游戏难度。每出现一个方块图形分数加七,如果使用快速下降功能(游戏中点击空格键)会有加分,具体实现后面有详细介绍,若在游戏中各形状填满了给定区域,游戏失败处于定格状态,此时可以重新开始游戏。游戏有暂停功能,当玩家点暂停按钮时,游戏暂停,再次点击暂停按钮,游戏继续。1.2 游戏界面与控制1.2.1 游戏窗口良好的用户界面,有关数,分数,下一个方块预览,消除行数显示。让方块
13、在一定的区域内运动和变形,该区域用一种颜色表明,既用一种颜色作为背景,这里为白色,而且该区域(游戏显示窗体)下陷,有层次感,方块颜色随机,避免游戏单调。1.2.2 方块形状良好的方块形状设计,方块简洁大方,大小适中,绘制七种常见的基本图形(长条形、Z字形、反Z形、田字形、7字形、反7形、T字型),各个方块要能实现它的变形,可设为顺时针或逆时针变形,本设计实现了顺时针与逆时针两种旋转方式。七种方块随机产生示意图如图l-lo图1T随机产生方块123键盘处理事件方块下落时,可通过键盘方向键(上、下、左、右、)空格键,D键对该方块进行向上(顺时针变形),向下(逆时针变形)、向左、向右移动,空格(直接降
14、到底部),D (加快下降速度)。游戏面板上设置“Start”,“Pause,“Quite”三个按钮,分别用来控制游戏开始,暂停,退出功能。1.2.4 显示需求当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当方块下降一定的个数时过关。设置多个关卡,每关方块下落的速度不同。游戏能在特定区域实时显示当前关卡,分数,消除行数,下一个将要出现的图形。第二部分功能展示本部分就方块游戏的功能配合截图进行检测与展示。2.1 进入游戏打开游戏,此时显示游戏的主窗口(由于Qt编程的可移植性,游戏的窗口样式与当前平台或主题配色及样式保持一致),其中包括:“Start”,“Quit”,“Pause” 三
15、个按钮,以及 “NEXT”,“LEVEL,“SCORE”,LINES REMOVED四个显示框。中间空白长方形区域为方块活动区。此时游戏处于初始化状态,各个显示卡内容均为0或空白,方块活动区还没有出现方块。游戏状态截图如图2-1。2.2 开始游戏点击“Start”按钮,游戏开始,中间方块活动区域有方块出现并下落,“LEVEL”由0变为1, “SCORE”也发生改变,截图中出现了两个图形,所以分数显示为14, “NEX显示下一个将要出现的方块形状,而由于还没有消除一行“LINES REMOVED”依然显示0,此时可通过键盘控制游戏。如图2-2。TetrixNEXTSCORELEVELLINES REMOVEDQui tPause