基于QT的贪吃蛇游戏设计与实现
资料介绍:
基于QT的贪吃蛇游戏设计与实现(任务书,外文翻译,毕业论文20000字,程序代码,答辩PPT)
摘要
随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界。人们不再拘泥于一小块天地,加班、出差成为现代人不可避免的公务。而此时一款可以随时随地娱乐的游戏成了必需品。贪吃蛇简单易行、操作方便、娱乐性极强,很好地满足了玩家的需求。
本系统开发平台为Windows7,应用基于Qt跨平台的图形用户界面应用程序框架,程序设计语言采用C++。在系统设计过程中,使用了面向对象的分析、设计方法。完全采用软件工程的方法进行需求分析、总体设计、总体实现和测试。在程序设计中,探讨了用图形框架的方法解决问题,对设计其他图形用户界面具有重要的实际意义。
本设计实现了一个简单的贪吃蛇小游戏,该游戏不仅实现了简单的游戏操作功能,还实现了灵活的运作功能,而且具有简洁大方的图文外观。此系统具有良好的界面和必要的交互信息,使操作人员能快捷简单的进行操作,给玩家一个有趣的游戏。
关键词 Qt;程序设计语言C++;贪吃蛇
Snake game design and implementation based on Qt
Abstract
With the development of the society, the quickening pace of life, people more and more people joined the globalization of the world.People are no longer limited to a small piece of heaven and earth, overtime, travel inevitably a modern business.At a time when a anywhere entertainment game became a necessity.Snake is simple, easy to operate, entertainment is extremely strong, well meet the requirements of the player.
Application development platform for Windows 7, this system is based on Qt cross-platform GUI application framework, using c + + programming language.In the process of system design, using the object-oriented analysis and design method.Completely using the method of software engineering needs analysis, overall design, implementation and testing as a whole.In programming, discusses the method of using graphical framework to solve the problem, the design of other graphical user interface (GUI) has important practical significance.
This design implements a simple snake game, the game is not only realize the function of simple operation, and realize the function of flexible operation, and has a concise and easy by appearance.This system has a good interface and the interaction of the necessary information, allow the operator to quick and easy to operate, to give the players a fun game.
Key words Qt; C + + programming language; snake
本设计所开发的是基于C++的一个贪吃蛇游戏软件,主要实现游戏的开始、暂停、退出功能,分为:游戏主界面模块、游戏控制模块两个模块。
游戏主界面模块:
主要包括游戏图形区域界面、难度设置按钮、游戏时间显示、分数显示、难度提升、右键菜单等功能。
游戏控制模块:
主要完成游戏的开始、暂停、方向控制等功能。
6.6 功能与程序的关系
1.游戏界面主框架主要包括贪吃蛇运动界面,信息显示界面。
1)贪吃蛇运动界面主要包括:食物的随机出现位置,蛇的移动
2)信息显示界面包括:得分显示,等级显示,难度显示,游戏难度设置,游戏说明,退出
2.与程序的关系
贪吃蛇运动界面贪吃蛇的移动及吃到食物的发生,向信息显示界面发出信号,刷新得分,并在达到一定限额提升等级。
信息显示界面中的按钮点击事件,发出信号,设置贪吃蛇运动界面的限制性条件。
6.7 运行设计
6.7.1 运行控制
由用户选择游戏控制类别:开始、暂停、继续、游戏设置、退出,不可以手动控制游戏级别,只能在达到一定界限,自动增加难度,这样有助于循序渐进。
6.7.2 运行时间
蛇移动方法及食物的颜色变化长期占用资源,改变方向、吃到食物、产生新食物都是瞬发动作,只是瞬间占用系统资源。
[资料来源:http://doc163.com]
目录
摘要 i
Abstract ii
绪论 1
1 嵌入式系统 2
1.1 嵌入式系统 2
1.2 组成 2
1.2.1 硬件层 2
1.2.2 中间层 3
1.3 特点 3
1.3.1 可裁剪性 3
1.3.2 强实时性 4
1.3.3 统一的接口 4
1.3.4 方便 4
1.3.5 强稳定性,弱交互性 4
1.3.6 固化代码 4
1.3.7 适应性 4
2 开发环境及关键技术 5
2.1 Qt 5
2.2 信号和槽机制 5
2.2.1 信号 6
2.2.2 槽函数 6
2.3 布局管理 6
2.4 程序启动画面QSplashScreen类 7
2.5 QTimer类 8
2.6 二维图形的绘制方法 8
2.7 右键菜单 9
3 可行性分析 10
3.1 研究目的 10
3.2 开发的可行性 10
3.2.1 操作可行性 10
3.2.2 技术可行性 10
3.2.3 经济可行性 10
3.3 专业术语 11
3.4 条件基础 11
3.5 实现目标 11
3.6 可行性研究方法 11
3.7 结论意见 11
4 需求分析 12
4.1 研究目的 12
4.2 开发背景 12
4.3 任务概述 13
4.3.1 目标 13
4.3.2 用户特点 13
4.4 需求规定 13
4.4.1 对功能的规定 13
4.4.2 对性能的规定 13
4.5 要解决的问题 13
4.6 提出的要求 14
4.7 可以实现的要求 14
4.8 关键点 14
4.9 嵌入式特性 14
5 贪吃蛇分析 15
5.1 贪吃蛇要求 15
5.2 贪食蛇设计思想 15
5.3 贪吃蛇游戏功能 15
6 贪吃蛇设计 16
6.1 系统的输入输出 16
6.1.1 输入 16
6.1.2 输出 16
6.1.3 蛇的移动 16
6.2 设计基础 16
6.3 数据字典 16
6.4 处理流程 17
6.5 系统的逻辑模型 18
6.6 功能与程序的关系 18
6.7 运行设计 19
6.7.1 运行控制 19
6.7.2 运行时间 19
7 贪吃蛇实现 20
7.1 程序系统的组织结构 20
7.1.1 每个模块的名称、标识符 20
7.1.2 模块之间的关系 21
7.2 程序描述 21
7.2.1 目的和意义 21
7.2.2 特点说明 21
7.3 程序详解 21
7.3.1 构造函数Snake(QWidget *parent) 21
7.3.2 初始化界面函数iniWidget() 22
7.3.3 连接信号函数iniConnect() 24
7.3.4 初始化游戏函数iniGame() 25
7.3.5 贪吃蛇移动函数doMoveSnake() 25
7.3.6 设置是否可以穿墙函数setEnableGoThroughWall() 26
7.3.7 更新得分函数changeScore() 26
7.3.8 更新等级函数changeLevel() 27
7.3.9 判断贪吃蛇是否吃到食物函数isEating() 27
7.3.10 判断游戏是否结束函数isGameOver() 27
7.3.11 绘图事件处理函数paintEvent(QPaintEvent *event) 28
7.3.12 键盘事件处理函数keyPressEvent(QKeyEvent *event) 29
7.3.13 获取随机颜色函数getColor() 30
7.3.14 时间处理函数 30
7.3.15 右键菜单处理函数 31
7.3.16 获取右键菜单槽函数 31
7.3.17 点击右键菜单中Info的槽函数 32
7.3.18 点击右键菜单中About的槽函数 32
7.3.19 程序主函数 32
8 软件测试 34
8.1 测试的意义 34
8.2 测试过程 34
8.3 测试计划 34
8.4 预期的结果 34
8.5 测试结果 35
结论 40
参考文献 41
致谢 42
外文原文 43
外文翻译 54