基于QT劳拉方块游戏设计与实现(含录像)
基于QT劳拉方块游戏设计与实现(含录像)(任务书,开题报告,外文翻译,毕业论文20000字,程序代码,答辩PPT,答辩视频录像)
摘要
劳拉方块是一款老少咸宜的小游戏,和俄罗斯方块类似,其中加入了等级的概念。游戏中的每一块落下的方块都由四个小色块组成,这四个小色块存储在一个数组的四个元素中,计算机随机产生不同类型的七种方块,根据计算机时钟控制它在一定的时间不停的产生。用户可以通过上下左右四个方向键(方向键的事件处理)来实现方块的翻转、向左、向右和向下。然后程序根据这七种方块对叠成不同的模型。
论文首先描述了游戏的历史和开发环境,然后完整地展现了软件定义,可行性研究、需求分析、概要设计、详细设计和软件测试,整个开发过程贯穿软件工程的知识体系。
此次设计在Linux下,以C++作为开发语言,在Qt平台上进行游戏的设计与实现,最终完成了代码部分的全部工作。能够设计出一款小游戏,寓教于乐,对我来说十分有意义。
关键词: 游戏开发,Qt,控制,信号
Laura box Game Design and Implementation
Abstract
Laura 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. [资料来源:http://doc163.com]
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,timer
游戏需求
28种状态的方块随机产生,自由下落,落下时可由玩家用上、下、左、右控制键控制翻转和移动,以便以玩家所需要的形态和位置落下。如果落下时,方块的方格能填满某一行,则这一行可消去。消去一行后,游戏可给玩家加分,若由存在空格的方块填满整个窗口,则游戏失败。游戏功能需求如下:
游戏界面需求:设计良好的游戏界面可以让玩家充分感受到游戏带来的娱乐性,在设计好的一定的区域内运动和变形,不同的色块让其拥有不同的颜色,这样看起来会有一定的美感。
游戏形状需求:用数组作为存储方块8种状态的数据结构,即长条形、Z字形、反Z形、田字形、7字形、反7形、T字型,各个方块要能实现它的变形,可设为顺时针或逆时针变形。
键盘处理事件需求:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行顺时针变形、逆时针变形、向左、向右移动,D键可以使方块加速下落,SPACE键可以使方块瞬间落下。
鼠标处理事件需求:通过点击菜单栏中相应的菜单项,可以实现游戏的开始、结束,方块形状的变换,分数、等级的显示,以及游戏帮助等功能。
显示需求:当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定分数的时候,会增加相应的等级。
[资料来源:http://doc163.com]
[资料来源:http://www.doc163.com]
目 录
1.绪论 1
1.1 课题研究的目的及意义 1
1.2 电子游戏的发展状况 1
1.2.1 电子游戏及其分类 1
1.2.2 电子游戏发展现状 2
1.3 研究的主要内容 4 [来源:http://www.doc163.com]
1.4 研究的目的和意义 4
2. 可行性研究 5
2.1 设计目的 5
2.2 软件的定义 6
2.3 可行性分析 6
2.4 结论意见 6
3. 需求分析 6
3.1 引言 6
3.2 游戏需求 6
3.3 开发环境 7
3.4 接口控制 7
3.5 方案论证 7
3.5.1 VB的特点 8
3.5.2 Java的特点 8
3.5.3 Qt的特点 9
3.5.4方案的选择 9
3.6 Qt简介 10
3.7 Qt的类库 12
3.8 Qt相比其他图形界面库的优点 13
3.9 Qt对象间通讯机制 13
4. 游戏的详细设计 15
4.1 劳拉方块游戏功能图 15
4.1.1 游戏运行流程图 15
4.1.2 方块下落得分图 17
4.1.3 游戏系统流程结构设计 17
4.2 图形实体类TetrixPiece实现 18
4.2.1 图形的产生 18
4.2.2 图形的旋转 19
4.3 游戏内容的实现 19
4.3.1 关于存储 19
4.3.2 关于七种色块的调用 20
4.3.3 关于色块的变形 20
4.3.4 关于方块下落 21
4.3.5 关于满行及消行判断 21
4.3.6 关于绘制游戏区域及方块 21
4.3.7 关于键盘事件响应 21
4.4 游戏主窗体的实现 22
5. 游戏主要功能选项的实现与检验 22
5.1 主要功能的验证 22
5.2 游戏快捷键简简介 23
5.3 调试程序 24
5.4 加载成功,观察效果 25
5.5 代码详解 28
5.5.1 main.cpp 28
5.5.2 tetrixboard.cpp 28 [来源:http://www.doc163.com]
5.5.3 tetrixpiece.cpp 39
5.5.4 tetrixwindow.cpp 42
5.6 总结 45
参考文献 46
致谢 47
[资料来源:http://www.doc163.com]