消除类游戏的设计与实现概要设计

更新时间:2024-01-03 05:19:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于s3c2440平台的消除类游戏的

设计与实现 概要设计

总页数 编制 17 正文 14 附录 0 生效日期 2014.11.20 批准

概要设计 版本:1.0.0

修 改 履 历

修改编号 1 2

日期 2014.11.20 2015.5.28 修改人 版本号 VER0.1.0 VER1.0.0 修改内容 初始做成 修改字体

概要设计 版本:1.0.0

目 录

1

文档概述 ............................................................................................................................................................ 1 1.1 1.2 1.3 2

文档目的和范围 .................................................................................................................................... 1 术语/缩略语 ........................................................................................................................................... 1 参考文档 ................................................................................................................................................ 1

模块概述 ............................................................................................................................................................ 1 2.1 2.2 2.3

模块功能定义 ........................................................................................................................................ 1 模块结构 ................................................................................................................................................ 2 模块动作时序 ........................................................................................................................................ 3

3 接口说明 ............................................................................................................................................................ 6 3.1 3.2

数据结构定义 ........................................................................................................................................ 6 函数 ........................................................................................................................................................ 6 3.2.1 3.2.2

模块间接口函数 ........................................................................................................................ 6 模块内接口函数 ...................................................................................................................... 14

概要设计 版本:1.0.0

1 文档概述

1.1 文档目的和范围

该文档主要完成基于s3c2440平台的消除类游戏的设计与实现的概要设计,主要描述各个模块间接口函数的调用关系,结构图,时序图,数据结构的定义,以及接口函数和内部接口函数的定义。

1.2 术语/缩略语

序号 术语/缩略语 1 2 QT s3c2440 说明 一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架 手持设备和通用嵌入式应用的集成系统 1.3 参考文档

序号 文档名 1 2 需求分析报告书 QT高级编程 作者 时间 版本 1-1 2014.11.11 VER1.0.0 Mark Summerfield 2011.4 2 模块概述

总体分为三个功能模块,游戏界面处理模块、游戏算法模块和时间分数模块。

2.1 模块功能定义

序号 1 功能点 游戏界面 功能点详细内容 开始游戏进入游戏界面,界面中有开始游戏、退出游戏、帮助等功能键 2 3 4 5 6 7 游戏初始化 消除算法 游戏计分 游戏计时 手势判断 界面刷新 进入游戏后界面中的消除方块随机分配位置 判断是否有三个或三个以上的相同方块在同一行或同一列 消除方块后会得到一定的分数 游戏开始后会给出一定的时间限制,消除方块后会有时间奖励 根据手势判断方块移动的方向 方块消除后空白的地方会由上面的方块补齐 1

概要设计 版本:1.0.0

2.2 模块结构

图表 1 模块结构图

模块名称 WindowInit RePaint GameInit MouseControl Ranking Hint Time Score CanChange CanClear 模块类型 接口 接口 接口 接口 接口 接口 接口 接口 内部模块 内部模块 概要说明 游戏界面初始化 游戏界面刷新 游戏数据初始化 鼠标行为处理 游戏排名 游戏提示 计时 计分 随机生成游戏图片 判断两张图片是否可以交换 判断是否可以消除 CreatePicture 内部模块 2

概要设计 版本:1.0.0

2.3 类图

QLabelQMainWindowScoreListMainWindowQWidgetGameWindowQPushButtonQTimer

图表 2 类图

类MainWindow:

图表 3 类MainWindow

该类是游戏的主类,继承于类QMainWindow,控制着游戏的主界面的显示和主界面上各个控件的功能。由上图可以看出主界面中的三个按钮分别实现三个不同的功能。

类ScoreList:

图表 4 类ScoreList

该类为游戏成绩的显示界面类,继承类QWidget,负责显示游戏中的前五名的成绩信息。

3

概要设计 版本:1.0.0

类GameWindow:

图表 5 游戏界面类

该类是游戏实现各个功能的一个重要的类,继承于类QWidget,控制着游戏实现的各个功能。该类比较详细的实现了整个游戏的细节部分,如对鼠标点击坐标的获取,消除的判断,游戏开始函数的实现,游戏结束的判断,重新开始游戏功能的实现以及游戏智能提示功能的实现等等。

4

概要设计 版本:1.0.0

2.4 模块动作时序

MainWindowGameWindowQTimerQPushButtonScoreListQLabel1:开始游戏2:游戏初始化3:初始化时间对象4:返回游戏时间5:游戏暂停6:计时器暂停7:游戏控制8:点击按钮9:实现按钮功能10:游戏结束11:进入排行榜界面12:显示信息13:进入排行榜界面14:显示信息

图表 6 时序图

在本次项目中程序的运行主要由paintEvent、timerEvent和mouseEvent来主导,timerEvent在整个游戏运行过程中主要有两个作用,实现游戏时间倒计时和图片切换实现动画效果;鼠标的动作识别和处理通过mouseEvent事件来进行,mouseEvent将处理的的结果反馈给游戏控制对象进行图片消除。整个过程中修改界面图片都是通过调用rePaint函数来触发paintEvent来进行窗口重绘,界面中的背景以及游戏图片的贴图都是在paintEvent中实现的。

5

概要设计 版本:1.0.0

3 接口说明

3.1 数据结构定义

#define ROWCOUNT 6 //行数 #define COLCOUNT 8 //列数

#define PHWIDTH 20 //图片宽和高 #define PHHEIGHT 20

#define SUMPH 10 //图片种类

3.2 函数

3.2.1 模块间接口函数

3.2.1.1 WindowInit

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 bool true false 详细说明 游戏界面初始化,随机显示各种类图片 使用注意事项 无 I/O - 说明 成功 失败 说明 - WindowInit dialog.cpp 游戏界面初始化 bool WindowInit();

6

概要设计 版本:1.0.0

3.2.1.2 RePaint

函数名 文件名 功能概要 记述形式 参数 类型 QPainter 返回值 变量名 painter 类型 值 void - - 详细说明 用于窗口重绘,每次界面刷新则调用该函数 使用注意事项 无 I/O - 说明 - - 说明 - RePaint dialog.cpp 界面刷新 void RePaint(QPainter *painter);

7

概要设计 版本:1.0.0

3.2.1.3 GameInit

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 bool true false 详细说明 游戏开始时数据的初始化包括图片地图的初始化 使用注意事项 无 I/O - 说明 成功 失败 说明 - GameInit control.cpp 游戏数据初始化 bool GameInit();

8

概要设计 版本:1.0.0

3.2.1.4 MouseControl

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 void - - 详细说明 根据鼠标动作进行相应处理 使用注意事项 无 I/O - 说明 - - 说明 - MouseControl control.cpp 鼠标动作处理 void MouseControl();

9

概要设计 版本:1.0.0

3.2.1.5 Ranking

函数名 文件名 功能概要 记述形式 参数 类型 QString 返回值 详细说明 变量名 filename 类型 值 显示和保存排名信息 使用注意事项 无 true false I/O - bool 成功 失败 说明 文件路径 说明 Ranking control.cpp 显示文件中记录的排名信息以及保存排名信息 bool Ranking(QString filename);

10

概要设计 版本:1.0.0

3.2.1.6 Hint

函数名 文件名 功能概要 记述形式 参数 类型 int 返回值 变量名 array 类型 值 void - - 详细说明 提示可交换的图片 使用注意事项 无 I/O - 说明 - - 说明 储存图片信息的数组 Hint contro.cpp 提示可交换的图片 void Hint(int array[][MAP_Y]);

11

概要设计 版本:1.0.0

3.2.1.7 Time

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 bool true false 详细说明 倒计时处理判断时间是否用完,如果用户则游戏结束 使用注意事项 无 I/O - 说明 时间还有剩余 时间用完游戏结束 说明 - Time control.cpp 计时处理 bool Time();

12

概要设计 版本:1.0.0

3.2.1.8 Score

函数名 文件名 功能概要 记述形式 参数 类型 int 返回值 变量名 score 类型 值 bool true false 详细说明 在指定的位置使指定的字符有闪烁效果。 使用注意事项 无 I/O - 说明 超过排行榜最低分 没有超过排行榜最低分 说明 本次移动所得分数 Socre control.cpp 计分处理 bool Score(int score);

13

概要设计 版本:1.0.0

3.2.2 模块内接口函数

3.2.2.1 CreatePicture

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 bool true false 详细说明 随机获取图片种类写入储存图片信息的数组中 使用注意事项 无 I/O - 说明 获取成功 获取失败 说明 - CreatePicture control.cpp 随机获取图片种类写入储存图片信息的数组中 bool CreatePicture();

14

概要设计 版本:1.0.0

3.2.2.2 CanChange

函数名 文件名 功能概要 记述形式 参数 类型 QPoint QPoint 返回值 变量名 point1 point2 类型 值 bool true false 详细说明 判断两张图片是否可以交换 使用注意事项 无 I/O - - 说明 可以交换 不能交换 说明 第一张图片坐标 第二种图片坐标 CanChange control.cpp 判断两张图片是否可以交换 bool CanChange(QPoint point1,QPoint point2);

15

概要设计 版本:1.0.0

3.2.2.3 CanClear

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 bool true false 详细说明 判断图片是否满足消除条件 使用注意事项 无 I/O - 说明 可以消除 不能消除 说明 - CanClear Control.cpp 判断图片是否满足消除条件 bool CanClear();

16

本文来源:https://www.bwwdw.com/article/x3xx.html

Top