Ubuntu平台贪吃蛇游戏的设计与实现.doc

上传人:灯火****19 文档编号:134956843 上传时间:2020-06-10 格式:DOC 页数:33 大小:425.29KB
返回 下载 相关 举报
Ubuntu平台贪吃蛇游戏的设计与实现.doc_第1页
第1页 / 共33页
Ubuntu平台贪吃蛇游戏的设计与实现.doc_第2页
第2页 / 共33页
Ubuntu平台贪吃蛇游戏的设计与实现.doc_第3页
第3页 / 共33页
Ubuntu平台贪吃蛇游戏的设计与实现.doc_第4页
第4页 / 共33页
Ubuntu平台贪吃蛇游戏的设计与实现.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《Ubuntu平台贪吃蛇游戏的设计与实现.doc》由会员分享,可在线阅读,更多相关《Ubuntu平台贪吃蛇游戏的设计与实现.doc(33页珍藏版)》请在金锄头文库上搜索。

1、嵌入式大作业Ubuntu平台贪吃蛇游戏的设计与实现作 者 姓 名: 学科、专业 : 学 号 : 指 导 教 师: 完 成 日 期: 大连大学Dalian University教师批阅页选 题 分内 容 分格 式 分态 度 分总 计: 分简略给出评语或指出文中问题: 评 阅 人: 完成日期: 大连大学论文设计摘 要随着计算机的普及,电脑游戏也慢慢融入人们的生活中,成为人们放松心情的一种方式。贪食蛇作为一款经典且易于操作的游戏,一直受到人们的青睐,在繁忙的工作之余,玩贪食蛇游戏实在是既省钱又有趣味的休闲方式。本设计遵循C+程序设计的基础原理,制作出一个精美的贪吃蛇小游戏。本设计采用Qt Creat

2、er作为主要的开发工具,很好的实现了贪吃蛇游戏的基本功能。关键词:C+; 贪吃蛇;Qt Creator摘 要3前 言1第一章 Qt库的优点21.1可移植性21.2易用性21.3运行速度2第二章 课程设计目的和要求42.1主要研究内容42.2目标(要求)42.3 课程设计任务内容4第三章 详细设计53.1设计思想53.1.1界面设计53.1.2数据结构63.2函数设计83.2.1文件及函数组成83.3.流程图93.3.1系统流程图93.3.2函数流程图11第四章 程序测试20第五章 设计心得与体会25参考文献26附录27前 言 Qt Creator是跨平台的 Qt IDE, Qt Creator

3、 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境(IDE)。此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。 Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。 在功能方面,Qt Creator 包括项目生成向导、高级的 C+ 代码编辑器、浏览文件及类的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、图形化的 GDB 调试前端,集成 qmake 构建工具等。 Qt Creator 主要是为了帮助新 Qt 用户更

4、快速入门并运行项目,还可提高有经验的 Qt 开发人员的工作效率。 使用强大的 C+ 代码编辑器可快速编写代码 语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能 使用浏览工具管理源代码 集成了领先的版本控制软件,包括 Git、Perforce 和 Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换为Qt跨平台开发人员的需求而量身定制 集成了特定于Qt的功能,如信号与槽(Signals & Slots)图示调试器,对Qt 类结构可一目了然集成了Qt D

5、esigner可视化布局和格式构建器只需单击一下就可生成和运行Qt项目。 虽然贪吃蛇游戏在我们的日常生活中是很常见的,但是作为普通的一款小游戏,他却有着极强的生命力,它的简单易行使之广泛的存在于电脑,手机等电子产品载体上,加上变化无穷、引人入胜,使它成为了一款受人喜欢的小游戏。第一章 Qt库的优点GUI工具包(或GUI库)是构造图形用户界面(程序)所使用的一套按钮、滚动条、菜单和其他对象的集合。在UNIX系统里,有很多可工使用的GUI库,其中之一就是Qt库,它是一个几乎C+编程语言的工具包。由于Qt是基于C+而不是C,故他的有点是速度快、易于使用,并具有很好的可移植性。所以,当需要开发Unix

6、或MS windows环境下的GUI程序时,Qt是最佳选择。1.1可移植性 Qt不只是适用于Unix,它同样适用于MS Windows。Windows平台下用标准库Microsoft Foudation Classes(MFC,Microsoft 基类),它不适用于其他平台。GTK或Xforms,又不能支持Windows平台。既适合windows平台又适合Linux平台的GUI工具包,那就是Qt。1.2易用性 Qt是一个C+工具包,它由几百个C+类构成,在程序中可以使用这些类。Qt是基于C+构造,所以具有OOP(object_oriented programming)的优点。1.3运行速度 Q

7、t非常容易使用,而且速度也很快。这两方面通常是不可能同时达到。GUI工具包,通常速度都不快,而Qt的这一有点归功于Qt开发者的功劳,他们大大优化了Qt的这一产品。Qt是一个GUI仿真工具包,这意味着它不使用任何本地工具包作调用。28大连大学论文设计第二章 课程设计目的和要求2.1主要研究内容论述基于Qt下的贪吃蛇游戏设计。通过对Qt下的贪吃蛇游戏分析,结合游戏中的逻辑和操作需求,说明Qt下的贪吃蛇游戏设计的开发过程及各种技术细节;结合所要开发的系统的特点,采用Qt Creator开发工具。2.2目标(要求)对基于Qt下的贪吃蛇游戏设计逻辑级操作分析。设计一个简单,漂亮的贪吃蛇游戏用以玩耍2.3

8、 课程设计任务内容程序要求游戏时,分为两种模式,允许穿墙模式和禁止穿墙模式,可以随意选择切换。禁止穿墙模式:一条蛇在的围墙内, 围墙内会随机出现一个食物通过键盘上的4个方向键控制蛇向上下左右4个方向移动,蛇头接到食物,则表示食物被蛇吃掉,这时蛇的身体加长一节,同时计10分。接着又出现食物等待被蛇吃掉。如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体),则游戏结束。分数每增加100分,游戏等级升1级即速度加快1级。允许穿墙模式:如果蛇在移动过程中,撞到墙壁会穿过从该墙的对面传出,游戏不会结束,身体交叉(蛇头撞到自己的身体) ,则游戏结束。其他记分、等级规则与禁止穿墙模式相同。第三章 详

9、细设计3.1设计思想3.1.1界面设计这个游戏程序的关键是表示蛇的图形以及蛇的移动。用一个小小方格来表示蛇的一节身体,身体每长一节,增加一个小方格。移动时必须从蛇头开始,如果不按任何键,蛇自行在当前方向上向前移动,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,首先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇的整个身体,在界面的游戏框中随机出现一个静止静止不动的食物,用户通过键盘来控制蛇的走向,当蛇吃到食物时,分数增加十分,界面开始更新,蛇的身体增加一节,游戏框中又会随机出现一个静止不动的食物在禁止穿墙模式下,当蛇

10、头碰到游戏框边框的时候或者蛇头碰到自己的身体的时候,游戏自动结束。在可以穿墙的模式下,蛇头碰到游戏框边框的时候,蛇会从该边框的对面穿出,游戏不会结束,当蛇头碰到自己的身体的时候,游戏结束。两种模式下,蛇每吃到一个食物,增加10分,分数每累积够百分,游戏等级增加1级,游戏速度加快1级,在游戏界面的上会有同步分数和等级的数码显示。在游戏中,还增加了游戏暂停功能,当游戏需要暂停时,按下暂停功能键p键,游戏在停,如果按下任意方向键,游戏继续。3.1.2数据结构QtSnake.h文件及类的设计如表3-1所示。表3-1文件名成员类型成员功能QtSnake.hpublicSnake(QWidget* = 0

11、)容器选取privatechar SnakeBodyMax2 int header_Index,Int tail_Indexint eat_X,eat_Y int level int speed int score,eatNum int map_row,map_col int Dir int step int tempx,tempy bool CanGoThroughWall bool hasMoved 程序所需变量QLCDNumber* levelNumber QLCDNumber* scoreNumber QLabel* label QLabel* levelLabel QLabel* s

12、coreLabel QLabel* setlabel Qtimer* timer QPushButton* button 布局选取void iniWidget() void iniConnect() bool isEating() bool isGameOver() void iniGame() void changeScore() void changeLevel() QColor getColor()功能函数private slotsvoid doMoveSnake()void setEnableGoThroughWall()信号槽函数protectedvoid paintEvent()void keyPressEvent()受保护函数类容器设计:class Snake : public QWidget Q_OBJECTpublic: Snake(QWidget* = 0);private: char SnakeBodyMax2;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号