基于QT的俄罗斯方块游戏设计与实现
来源:56doc.com 资料编号:5D10907 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9A5D10907
资料介绍
基于QT的俄罗斯方块游戏设计与实现(任务书,中期检查报告,外文翻译,毕业论文14000字,程序代码,答辩PPT)
摘 要
为了能够更进一步掌握Qt编程,我决定用Qt开发一个单机版的的俄罗斯方块游戏。俄罗斯方块的实现由四块正方形的色块组成,计算机随机产生不同七种类型的方块,根据计算机时钟控制它在一定的时间不停的产生,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,(控制键的实现是由键盘的方向键的事件处理实现)。然后程序根据这七种方块堆叠成各种不同的模型。
本次设计用到的工具是基于UBUNTU或windows下的QT软件实现,图行界面的处理都是代码实现.
论文描述了游戏的历史,开发此游戏的环境,游戏开发的意义。遵循软件工程的知识,从软件问题定义开始,接着进行可行性研究、需求分析、概要设计、详细设计,最后对软件进行了测试,整个开发过程贯穿软件工程的知识体系。本游戏操作简单,界面清晰,让玩家容易上手操作。
关键词:游戏设计;算法;数组;事件;QT
Design and implementation of Tetris, based on the QT
ABSTRACT
In 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 composed 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 the 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 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 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
研究的主要内容
俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人Alex Pajitnov制作的,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个俄罗斯方块时代。
从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我在设计中在一个图片框中构造了一些的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我总共设计了7种造型,每种造型又可以通过旋转而变化出24种形状,利用随机函数在一个预览窗体中提前展示形状供用户参考,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,最后就可以得出用户的分数。
游戏功能分析
3.2.1 系统概述
28种状态的方块随机产生,自由下落,落下时可由玩家用上、下、左、右控制键控制翻转和移动,以便以玩家所需要的形态和位置落下。如果落下时,方块的方格能填满某一行,则这一行可消去。消去一行后,游戏可给玩家加分,若由存在空格的方块填满整个窗口,则游戏失败。游戏功能需求如下:
游戏界面需求:设计良好的游戏界面可以让玩家充分感受到游戏带来的娱乐性,游戏的背景色是黑色,方块用蓝色颜色,在一定的区域内运动和变形,落下后的障碍物用黄色显示,这样看起来会有一定的美感。
游戏形状需求:用数组作为存储方块28种状态的数据结构,即长条形、Z字形、反Z形、田字形、7字形、反7形、T字型,各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。
键盘处理事件需求:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速)、向左、向右移动。
鼠标处理事件需求:通过点击菜单栏中相应的菜单项,可以实现游戏的开始、结束,方块形状的变换,分数、等级的显示,以及游戏帮助等功能。
显示需求:当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定分数的时候,会增加相应的等级。
目 录
摘 要 i
ABSTRACT ii
目 录 3
1绪 论 1
1.1 开发目的 1
1.2 俄罗斯方块游戏的现状 1
1.3 研究的主要内容 2
1.4 研究的意义 2
2 可行性研究 4
2.1 设计目的 4
2.2 软件问题定义 4
2.3 可行性分析 4
2.3.1技术可行性 4
2.3.2经济可行性 4
2.3.3操作可行性 5
2.3.4法律可行性 5
2.4 结论意见 5
3需求分析 6
3.1 引言 6
3.2游戏功能分析 6
3.2.1 系统概述 6
3.2.2 系统运行环境 7
3.3 游戏的UML基本模型 7
3.3.1 游戏的用例图 7
3.3.2 游戏的状态图 8
3.3.3 游戏的活动图 9
4游戏详细设计 11
4.1 图形实体类TetrixPiece实现 11
4.1.1 图形的产生 11
4.1.2 图形的旋转 12
4.2 游戏内容的实现 13
4.2.1 游戏实现控制方式 13
4.2.2 方块下移 13
4.2.3 满行及消行判断 14
4.2.4 绘制游戏区域及方块 14
4.2.5 键盘事件响应 14
4.3 游戏主窗体的实现 14
5代码分析 16
5.1 Tetrix工程 16
5.2 main.cpp主程序代码: 16
5.3 tetrixboard.h头文件代码: 17
5.4 tetrixboard.cpp程序代码: 18
5.4.1游戏初始化,复位的实现 18
5.4.2 游戏开始与暂停 19
5.4.3 按键控制游戏 20
5.4.4计时模块 21
5.4.5 方块的活动 21
5.4.6 过关与奖励 22
5.4.7 方块颜色控制 23
5.5 tetrixpiece.h头文件代码: 24
5.6 tetrixpiece.cpp程序代码: 25
5.7 tetrixwindow.h头文件代码: 26
5.8 tetrixwindow.cpp程序代码 27
5.8.1显示框 27
5.8.2功能按钮 27
5.8.3信号与槽 28
5.8.4游戏面板布局 28
6整体测试 29
6.1游戏运行测试 29
6.2游戏界面测试 29
6.3界面功能测试 30
6.4 测试总结 33
结 论 34
致 谢 36
参考文献 37
外文原文 39
中文翻译 47 |