已阅读5页,还剩82页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
济源职业技术学院毕业设计(论文)题目 基于 Qt 的扫雷游戏设计 系别 信息工程系 专业 计算机应用技术 班级 计应 1002 班 姓名 常慧珍 学号 10090224 指导教师 李攀 日期 二零一二年九月 基于 Qt 的扫雷游戏设计总计:毕业设计(论文)25 页图表 10 幅I摘 要扫雷游戏是一款经典的小游戏,这款游戏不仅可以让人们充分享受娱乐的目的,而且可以通过这款小游戏开发人的逻辑推理能力和判断能力。 本次毕业设计我们以Qt4.6 为开发环境,设计并开发了基于 Qt 的扫雷游戏。扫雷游戏主要研究以下两个方面:第一是初始化问题,包括随机产生本局游戏中的雷数,雷的分布对于每个小区域如何获得周围地区分布的雷数等等。第二就是对鼠标事件的处理,即在游戏过程中对鼠标事件应如何做出反应。本论文以 Qt 作为开发软件,首先使用信号与槽的方法实现菜单、工具栏的功能,其次又以 MousePressEvent 鼠标事件发出信息来了解使用者的意图,进而做出相对应的动作,再次介绍了清除地雷区方块的方法,通过递归程序的编写,在程序代码上会变得相当简洁。最后利用布局管理组(Layouts)进行整体布局。使用 C+语言设计完成了扫雷游戏的初始化界面,实现了扫雷游戏的计时、重新开始、难度设置、排行榜、帮助等功能。还增加了游戏在成败时弹出对话框等功能。总的来说本次设计在功能上已经基本达到预期的要求。但还有一些不足,比如扫雷游戏设计还可以添加一些背景音乐、背景图片、视频等功能,更能增加人们的娱乐性。关 键 词 : 扫雷游戏;Qt;C+IIABSTRACTMinesweeper game is a classic game, the game can not only allow people to fully enjoy the entertainment purposes, and by this small game development logical reasoning ability and judgment. The graduation project to Qt4.6 development environment, design and development of Qt-based game of Minesweeper.The minesweeper game the following two aspects:The first is the initialization problems, including randomly generated number of Council Game Ray Ray distribution for each small area how to get around the geographical distribution of Ray.The second is the processing of mouse events, mouse events in the course of the game how to react.In this thesis, QT signals and slots as the development of software, the first to use the method to achieve the functionality of the menus, toolbars, followed Youyi mousePressEvent mouse events issued information to understand the users intent, and then make a corresponding action, again introduced a clear Minefields box by recursive program code will become quite simple. Finally, the the layout management group (Layouts) overall layout.Completed minesweeping games initialization interface design, to achieve a mine-sweeping game of timing, start again, difficulty settings, rankings, help functions using the C language. Game in the success or failure of the pop-up dialog box. Overall, the design function has basically reached the expected requirements. But there are some disadvantages, such as minesweeping game design can also add some background music, background image, video, and can help increase peoples entertainment.Keywords: Minesweeper game; Qt; C+III目 录摘 要 .IABSTRACT .II第 1 章 绪论 .- 1 -1.1 研究背景 .- 1 -1.2 研究原因 .- 1 -1.3 研究意义 .- 1 -第 2 章 Qt 简介 .- 2 -2.1 Qt 特征 .- 2 -2.2 Qt 核心编程技术 .- 2 -2.2.1 元对象系统 .- 2 -2.2.2 信号和槽机制 .- 3 -2.2.3 QObject 类 .- 3 -2.2.4 对象树 .- 3 -2.2.5 事件 .- 3 -2.2.6 QApplication 类 .- 3 -2.2.7 QWidget 类 .- 4 -2.2.8 基本布局(QLayout) .- 4 -2.3 C+面向对象程序设计 .- 4 -2.4 Qt 程序用到的类 .- 5 -2.5 Qt 应用程序实现 .- 5 -2.6 本章小结 .- 6 -第 3 章 扫雷游戏设计 .- 8 -3.1 扫雷游戏功能需求分析 .- 8 -3.2 扫雷游戏整体框架介绍 .- 8 -3.3 扫雷游戏主要功能的实现 .- 9 -3.3.1 菜单栏的实现 .- 9 -3.3.2 菜单栏的功能 .- 11 -3.3.3 鼠标事件的实现 .- 11 -3.3.4 完成扫雷游戏逻辑的设计 .- 12 -3.3.5 扫雷游戏状态分类 .- 12 -3.3.6 初始化界面功能实现 .- 13 -3.3.7 雷区的随机布置 .- 13 -3.4 清除未靠近地雷的方块 .- 14 -3.5 游戏的判断 .- 15 -IV3.5.1 游戏成功 .- 15 -3.5.2 游戏失败 .- 15 -3.6 游戏测试结果 .- 16 -结 论 .- 17 -致 谢 .- 18 -参 考 文 献 .- 19 -基于 Qt 的扫雷游戏设计- 1 -第 1 章 绪论1.1 研究背景随着计算机与网络的普及,人们生活水平的提高,电脑游戏越来越成为人们生活中不可或缺的一部分,在人们繁忙的工作之余,给人带去欢乐。随着电脑游戏产业的规模越来越大,开发一款成功的电脑游戏靠个人之力已非易事。不过,随着市场上开发的游戏产品越来越丰富,各种题材的游戏越来越多,创意已成为一款成功游戏的最重要的特点。例如目前流行的游戏“植物大战僵尸”、“愤怒的小鸟”,虽然都是一些很小的休闲游戏,但是因其特有的风格,使得它们都深受人们的喜爱。本次毕业设计将利用 Qt4.6 作为开发工具,设计了基于 Qt 的扫雷游戏。1.2 研究原因扫雷游戏是 Windows 操作系统自带的一款小游戏,与那些网络游戏和 3D 游戏相比,它有编写简单容易上手等特点,游戏开发成本比较低,开发娱乐性强的游戏就成为当前的主要课题,在这种趋势下各种小型的低成本的游戏软件应运而生。其中,系统自带的小游戏也占据了相当重要的地位,非常符合人们娱乐的要求。这些小游戏大都是以益智和娱乐为目的,不仅给紧张工作的人们以放松,还可以让人们的大脑得到开发。本课题就是基于 Qt 扫雷游戏的设计。1.3 研究意义经过三年的大学学习,我对理论知识已经有了一定的了解与认知,本次的毕业设计便是将书本上所学的理论知识与实际相结合,同时也是对所学知识的一种检查,希望通过本次的毕业设计使自己在程序编写和游戏开发上有新的认识并能有所提高。本次毕业设计既锻炼了我们的实际动手能力,又培养了我们的自信心。在老师的指导下进行了一次模拟实际产品的开发,这对以后工作和学习能力的培养具有重要意义。基于 Qt 的扫雷游戏设计- 2 -第 2 章 Qt 简介Qt 是一个跨平台的 C+图形用户界面应用程序框架。它给应用程序开发者提供建立艺术级图形用户所需的所有功能。它是完全面对对象的,很容易扩展,并且允许真正的组件编程。Qt 已经在 Windows、Linux 和 Embbeded Linux 上成功的推广。而且 Qt 是一个开源项目,开发成本比较低,又为开发者提供了免费而又友好的集成开发环境。Qt 采用 C+语言作为开发语言,使用 C+语言开发,其运行效率可以得到保证。2.1 Qt 特征引入一种信号和槽机制,可查询和可设计的属性,强大的事件和事件过滤器,根据上下文进行国际化的字符串翻译,完善的时间间隔驱动的计时器使得在一个事件驱动的图形界面程序中很好地集成许多任务成为可能。以一种自然的方式组织对象所有权的分层次和可查询的对象树。2.2 Qt 核心编程技术2.2.1 元对象系统Qt 元对象系统提供了对象间的通信机制(信号与槽)、运行时类型信息和动态属性系统的支持,是标准的 C+的一个扩展,它使 Qt 能更好地实现 GUI 图形用户界面编程。Qt 的元对象系统不支持 C+模板,尽管模板扩展了标准 C+的功能,但是对元对象系统提供了模板无法提供的一些特性。Qt 的元对象基于三个事实:基类 Q_Object:任何想使用元对象系统功能的类必须继承 QObject。Q_OBJECT 宏:Q_OBJECT 宏必须出现在类的私有声明区,已启动元对象的特性。元对象编译器(Meta-Object Compiler,moc) :为 QObject 子类实现元对象特性提供必要的代码实现。编译器 moc 产生能被标准 C+编译器访问的附加 C+代码,带有 moc 预编译器的 C+基本上提供了面向对象的灵活性,并保持了 C+的执行效率和扩展性。基于 Qt 的扫雷游戏设计- 3 -2.2.2 信号和槽机制Qt 提供了信号和槽机制来完成界面操作的响应,是完成任意两个 Qt 对象之间的通信机制。其中,信号会在某个特定的情况或动作下被触发,槽是等同于接受并处理信号的函数。每个 Qt 对象都包含若干个预定义的信号和若干个预定义的槽,当某一个特定事件发生时,一个信号被发射,与信号相关联的槽则会响应信号完成相应的处理。当一个类被继承时,该类的信号和槽也同时被继承,也可以根据需要自定义信号和槽。常用的连接方式为:connect(Object1,SIGNAL(singal),Object2,SLOT(slot);singal 为对象 Object1 的信号,slot 为对象 Object2 的槽。2.2.3 QObject 类QObject 是 Qt 类体系的唯一基类,是 Qt 各种功能的源头活水,就象 MFC 中的CObject 和 Dephi 中的 TObject。2.2.4 对象树QObject 在对象树中组织它们自己。当你以另外一个对象作为父对象来创建一个 QObject 时,它就被添加到父对象的 children()列表中,并且当父对象被删除的时候,它也会被删除。这种机制很好的适合了图形用户界面应用对象的需要。2.2.5 事件事件是由窗口系统或 Qt 本身对各种事务的反应而产生的。当用户按下、释放一个键或鼠标按钮,一个键盘或鼠标事件被产生;当窗口第一次显示,一个绘图事件产生,从而告知最新的可见窗口需要重绘自身。大多数事件是由于响应用户的动作而产生的,但还有一些,比如定时器等,是由系统独立产生的。2.2.6 QApplication 类QApplication 类和 QWidget 类都是 QObject 类的子类。QApplication 类负责 GUI应用程序的控制流和主要的设置,它包括主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件,并且处理应用程序的开始、结束以及会话管理,还包基于 Qt 的扫雷游戏设计- 4 -括系统和应用程序方面的设置。对于一个应用程序来说,建立此类的对象是必不可少的。2.2.7 QWidget 类QWidget 类是所有用户接口对象的基类,它继承了 QObject 类的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论