概要设计模版(案例)

更新时间:2024-03-31 02:12:01 阅读量: 综合文库 文档下载

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

项目名称:手机游戏模拟器之Greedy Snake 项目编号: EBD00001

文档编号:EBD881101PDR003

贪吃蛇游戏概要设计

沈阳东软软件股份有限公司

总页数 编制

正文 附录 生效日期 批准

概要设计报告 版本:0.1.0 第2页

修 改 履 历

修改编号 1 2 3

日期 2009.09.16 修改人 XXX 版本号 VER0.1 修改内容 初始做成 沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第3页

目 录

1

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

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

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

模块功能定义 ........................................................................................................................................ 5 模块结构 ................................................................................................................................................ 6 模块动作时序 ........................................................................................................................................ 9

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

数据结构定义 ........................................................................................................................................ 9 函数 ...................................................................................................................................................... 11 3.2.1 3.2.2

模块间接口函数 ...................................................................................................................... 11 模块内接口函数 ...................................................................................................................... 13

沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第4页

1 文档概述

1.1 文档目的和范围

该文档描述贪吃蛇游戏各模块的概要设计思想。

1.2 术语/缩略语

序号 术语/缩略语 1 2

LCD 说明 液晶显示 1.3 参考文档

列出所参考的式样或者文档等

序号 文档名 1 2 3 4 5

CM12864.pdf Lpc2114_2124_cn.pdf Visual CHM 3.10 LCD12864基础入门.chm 引脚连接、中断控制、GPIO.pdf 作者 时间 版本 2 模块概述

1. 系统管理模块:该模块主要功能为初始化系统和游戏,启动各个任务。 2. 按键任务模块:该模块的主要功能为检测按键并进行处理。 3. 显示信息模块:该模块的主要功能为显示游戏界面和信息。 4. 游戏任务模块:该模块主要功能为游戏初始化及游戏动作处理。

沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第5页

2.1 模块功能定义

1. 系统管理模块 序号 1 2 3 4 5

2. 按键任务模块 序号 1 2 功能点 按钮键值检测 按钮处理 功能点详细内容 检测按钮键值,并将键值返回给按钮处理函数 判断按钮检测函数返回的键值,如果是方向键判断移动方向,把键值返回给游戏任务模块处理

3. 显示信息模块 序号 1 功能点 显示游戏时间 功能点详细内容 处理GamePlay模块提供的时间变量,显示在字符显示屏(LCD1)上 2 3 4 5 显示游戏积分 显示游戏等级 显示游戏欢迎界面 显示游戏过程界面 在字符显示屏(LCD1)上显示游戏积分 在字符显示屏(LCD1)上显示游戏等级 游戏开始时,显示欢迎界面 游戏进行时,在图形显示屏(LCD2)上显示当前地图、障碍物、贪吃蛇和食物 6 7

4. 游戏任务模块 序号 功能点 功能点详细内容 显示游戏结束界面 显示游戏通关界面 游戏结束时,显示结束界面 游戏通关时,显示通关界面 功能点 系统初始化 游戏初始化 游戏任务 游戏信息任务 按钮检测任务 初始化游戏系统 初始化游戏数据, 创建游戏任务 创建游戏信息显示任务 创建按键检测任务 功能点详细内容 沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第6页

1 2 3 4 5 6 7 8 9 10 11 地图初始化 贪吃蛇初始化 游戏信息初始化 移动情况检测 升级检测 增加蛇身 创造食物 移动蛇身 游戏升级 游戏开始/暂停 游戏结束 设定地图边界、食物、地图中的障碍物 初始化贪吃蛇的速度、方向、身体、蛇头等 初始化游戏的时间、等级、积分 根据移动方向判断移动结果 检测游戏是否升级或通关 增加蛇身的长度 生成新的食物 移动蛇的位置 游戏等级提升,速度增加 根据按键情况决定游戏开始或者暂停 结束游戏,显示结束画面 2.2 模块结构

以本模块为中心,画出模块间结构及模块内结构图。对于模块内细分的小模块也最好列表说明各小模块的功能。

沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第7页

系统初始化游戏初始化创建任务游戏运行任务按钮检测任务显示信息任务初始化地图、贪吃蛇、游戏信息按键检测游戏信息显示开始/暂停游戏动作判断按键处理显示时间、分数、等级游戏开始/暂停移动游戏界面显示没吃到食物移动情况检测撞墙/咬到自己游戏欢迎界面移动蛇身吃到食物游戏过程界面游戏结束界面未升级升级检测通关游戏结束升级增加蛇身游戏升级

1. 系统管理模块

函数名称 SysInit 函数类型 模块外部函数 概要说明 调用操作系统初始化函数,LCD初始化函数,按键初始化函数,目标板初始化函数进行系统初始化

沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第8页

2. 按键检测模块

函数名称 KeyProcess_TaskKey KeyProcess_Handle 函数类型 模块外部函数 模块内部函数 概要说明 检测是否有按键被按下,如果被按下则返回按键的键值给按键处理函数。 判断按钮检测函数返回的键值,如果是方向键则调用方向处理函数,如果是开始/暂停键则返回键值给相应的全局变量。 方向键处理函数,将得到的方向键的键值返回给移动情况检测函数。 KeyProcess_Direction

模块内部函数 3. 信息显示模块

模块名称 TaskInfo_TaskInfo TaskInfo_LCD1 TaskInfo_LCD1ShowTime TaskInfo_LCD1ShowScore TaskInfo_LCD1ShowLevel TaskInfo_LCD2 TaskInfo_LCD2Welcome TaskInfo_LCD2GameIn TaskInfo_LCD2GameOver TaskInfo_LCD2Succeed

模块类型 模块外部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 概要说明 调用TaskInfo_LCD1 和TaskInfo_LCD2 控制LCD1显示游戏信息 显示游戏时间 显示游戏得分 显示游戏等级 控制LCD2显示游戏界面 显示欢迎界面 显示游戏进行时的游戏界面 显示游戏结束界面 显示游戏通关界面 4. 游戏任务模块

函数名称 GamePlay_TaskGame GamePlay_GameInit 函数类型 模块外部函数 模块内部函数 概要说明 游戏任务模块的外部接口 游戏初始化,包括三部分地图初始化、贪吃蛇初始化、显示信息初始化 GamePlay_GameCheck GamePlay_MoveCheck 模块内部函数 模块内部函数 检测游戏运行状态 检测蛇的运动状态 沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第9页

GamePlay_MapInit GamePlay_SnakeInit GamePlay_MessageInit GamePlay_Start GamePlay_CreateBean GamePlay_Grow GamePlay_Move GamePlay_LevelUp GamePlay_GameOver 模块内部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 模块内部函数 地图初始化 贪吃蛇初始化 显示信息初始化 游戏开始/暂停 生成食物 增长蛇身 移动蛇身 提高等级 游戏结束

2.3 模块动作时序

主要描述模块间动作时序图,可以直接在VISIO文件中记述(如果直接在VISIO中记述,这里说明「参考XXXXXX.vsd」)。

3 接口说明

3.1 数据结构定义

1. 游戏过程的数据结构

typedef struct gameinfo {

INT32U Time; //游戏时间 INT32U Score; //游戏分数 INT8U Level; //游戏等级

INT8U State;

//游戏状态

}GAMEINFO, *pGAMEINFO;

Typedef struct point {

INT8U Row;

//行

沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第10页

INT8U Column; //列

}POINT, *pPOINT;

typedef struct snake {

INT8U Direction; //蛇移动的方向 INT8U Length; //蛇身体的长度 INT8U Speed; // POINT Body[20]; // INT8U Head; //}SNAKE, *pSNAKE;

typedef struct map {

INT8U Left; // INT8U Top; // INT8U Right; // INT8U Bottom; // POINT Rock[40]; //

POINT BEAN;

}MAP, *pMAP; 2.宏定义

#define KEY_UP 1 #define KEY_LEFT #define KEY_RIGHT #define KEY_BOTTOM #define KEY_START #define KEY_PAUSE 6 //

#define STATE_GAMEOVER #define STATE_START #define STATE_PAUSE #define STATE_SUCCEED #define STATE_GAMEIN

蛇移动的速度 蛇身体节点数组 蛇头在蛇身体数组的位置 地图左边界 地图上边界 地图右边界 地图下边界 岩石障碍物数组

//食物

//按键的状态为向上 2 //按键的状态为向左 3 //按键的状态为向右 4 //按键的状态为向下 5 //按键的状态为开始 按键的状态为暂停 0 //游戏结束 1 //游戏开始 2 //游戏暂停 3 //游戏通关 4 //游戏进行中 沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第11页

#define PRIO_TASKINFO 1 #define PRIO_TASKKEY 2 #define PRIO_TASKGAME 3 //信息任务优先级 //键盘任务优先级 //游戏任务优先级

3.2 函数

3.2.1 模块间接口函数

1. 系统管理模块 SysInit

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 void - I/O - 说明 - 说明 - SysInit SysInit.c 系统初始化 void SysInit (void) 调用操作系统初始化函数,LCD初始化函数,按键初始化函数,目标板初始化函数进行系统初始化 使用注意事项 在系统的最开始也就是Main模块的最开始调用此函数

2. 按键检测模块 KeyProcess_TaskKey

函数名 文件名 功能概要 记述形式 参数 沈阳东软软件股份有限公司

KeyProcess_TaskKey KeyProcess.c 检测是否有按键被按下,如果被按下则返回按键的键值给按键处理函数 INT8U KeyProcess_TaskKey (void) 概要设计报告 版本:0.1.0 第12页

类型 void 返回值 变量名 - 类型 值 INT8U I/O - 说明 - 说明 按键的键值 详细说明 检测是否有按键被按下,如果被按下则返回按键的键值给按键处理函数 使用注意事项 -

3. 显示信息模块 TaskInfo_TaskInfo

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 调用TaskInfo_LCD1、TaskInfo_LCD2函数 使用注意事项 任务接口,通过OS控制建立此任务 void - I/O - 说明 - 说明 - TaskInfo_TaskInfo GameInfo.c 在LCD1显示游戏信息、在LCD2上显示游戏界面 void TaskInfo_Taskinfo(void)

4. 游戏任务模块 Gameplay_TaskGame

函数名 文件名 Gameplay_TaskGame GamePlay.c 沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第13页

功能概要 记述形式 参数 类型 void 返回值 游戏任务模块的外部接口函数 void Gameplay(void) 变量名 类型 值 void - - I/O - 说明 - - 说明 详细说明 游戏任务模块的接口函数,提供给Main模块调用 使用注意事项 -

3.2.2 模块内接口函数

1. 按键检测模块 KeyProcess_Handle

函数名 文件名 功能概要 记述形式 参数 类型 INT8U 返回值 详细说明 变量名 KeyAspect 类型 值 void I/O - 说明 - 说明 按键的键值 KeyProcess_Handle KeyProcess.c 根据键值进行相应处理 void KeyProcess_Handle (INT8U keyAspect) - 判断按钮检测函数返回的键值,如果是方向键判断移动方向,把键值返回给游戏任务模块处理 使用注意事项 沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第14页

需要先进行按键检测

KeyProcess_Direction

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 INT8U I/O - 说明 按下的方向键的方向为上 按下的方向键的方向为左 按下的方向键的方向为右 按下的方向键的方向为下 说明 - KeyProcess_Direction KeyProcess.c 方向键处理函数,将得到的方向键的键值返回给方向控制的全局变量 INT8U KeyProcess_Direction (void) KEY_UP KEY_LEFT KEY_RIGHT KEY_DOWN 详细说明 调用移动情况检测函数,方向键的键值作为移动检测函数的参数 使用注意事项 -

2. 显示信息模块 TaskInfo_LCD1

函数名 文件名 功能概要 记述形式 参数 类型 void 变量名 - 沈阳东软软件股份有限公司

TaskInfo_LCD1 GameInfo.c 在LCD1上显示游戏信息 void TaskInfo_LCD1(void) I/O - 说明 - 概要设计报告 版本:0.1.0 第15页

返回值 类型 值 void - 说明 - 详细说明 调用TaskInfo_LCD1ShowTime, TaskInfo_LCD1ShowScore, TaskInfo_LCD1ShowLevel;并控制刷新LCD1 使用注意事项 在TaskInfo_TaskInfo任务中调用 TaskInfo_LCD1ShowTime

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 void - I/O - 说明 - 说明 - TaskInfo_LCD1ShowTime GameInfo.c 在LCD1上显示时间 void TaskInfo_LCD1ShowTime (void) 获取游戏信息中的时间使其以时分秒的形式显示在字符显示屏(LCD1)上 使用注意事项 注意实参为gameinfo结构体的时间变量 TaskInfo_LCD1ShowScore

函数名 文件名 功能概要 记述形式 参数 类型 变量名 沈阳东软软件股份有限公司

TaskInfo_LCD1ShowScore GameInfo.c 显示游戏分数 void TaskInfo_LCD1ShowScore(void) I/O 说明

概要设计报告 版本:0.1.0 第16页

void 返回值 - 类型 值 void - - 说明 - - 详细说明 在字符显示屏(LCD1)上显示游戏积分 使用注意事项 注意实参为gameinfo结构体的分数变量 TaskInfo_LCD1ShowLevel

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 void - I/O - 说明 - 说明 - TaskInfo_LCD1ShowLevel GameInfo.c 显示游戏等级 void TaskInfo_LCD1ShowLevel(void) 在字符显示屏(LCD1)上显示游戏等级 使用注意事项 注意实参为gameinfo结构体的等级变量 TaskInfo_LCD2

函数名 文件名 功能概要 记述形式 参数 沈阳东软软件股份有限公司

TaskInfo_LCD2 GameInfo.c 分析传递过来的状态信息,在LCD2显示屏上,显示不同的游戏界面 void TaskInfo_LCD2(void) 概要设计报告 版本:0.1.0 第17页

类型 void 返回值 变量名 - 类型 值 void - I/O - 说明 - 说明 - 详细说明 游戏界面显示函数,,通过游戏信息的状态信息,以显示游戏欢迎界面,或者游戏进行界面(其中包括暂停界面),或者游戏结束界面。 使用注意事项 无 TaskInfo_LCD2Welcome

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 显示游戏的欢迎界面。 使用注意事项 void - I/O - 说明 - 说明 - TaskInfo_LCD2Welcome GameInfo.c 显示欢迎界面 void TaskInfo_LCD2Welcome(void) 本函数的调用受到传递过来的状态信息的限制 TaskInfo_LCD2GameIn

函数名 文件名 功能概要 TaskInfo_LCD2GameIn GameInfo.c 显示游戏进行时的游戏界面 沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第18页

记述形式 参数 类型 void 返回值 Void TaskInfo_LCD2GameIn(void) 变量名 - 类型 值 void - I/O - 说明 - 说明 - 详细说明 通过全局变量的游戏中蛇,豆子,地图的坐标信息将游戏界面在LCD2中显示出来 使用注意事项 他的调用受到传递过来的状态信息的限制 TaskInfo_LCD2GameOver

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 显示游戏结束界面 使用注意事项 void - I/O - 说明 - 说明 - TaskInfo_LCD2GameOver GameInfo.c 显示游戏结束界面 void TaskInfo_LCD2GameOver(void) 本函数的调用受到传递过来的状态信息的限制 TaskInfo_LCD2Succeed

函数名 文件名 TaskInfo_LCD2Succeed GameInfo.c 沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第19页

功能概要 记述形式 参数 类型 void 返回值 显示游戏通关界面 void TaskInfo_LCD2Succeed(void) 变量名 - 类型 值 void - I/O - 说明 - 说明 - 详细说明 显示游戏通关界面 使用注意事项 本函数的调用受到传递过来的状态信息的限制

3. 游戏任务模块 GamePlay_GameInit

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 游戏初始化函数,包括三部分地图初始化、贪吃蛇初始化、显示信息初始化,提供给main模块调用。 使用注意事项 在OSInit()、SysInit()之后调用 void - I/O - 说明 - 说明 - GamePlay_GameInit GamePlay.c 游戏初始化 void GamePlay_GameInit(void)

GamePlay_MoveCheck

沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第20页

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 GamePlay_MoveCheck GamePlay.c 移动情况检测 void GamePlay_MoveCheck (void) 变量名 - 类型 值 void - I/O - 说明 - 说明 - 详细说明 检测蛇的运行状态,撞墙、咬到自己、吃到食物还是没吃到食物,提供给按键检测模块调用。 使用注意事项 四种状态分别调用不同的模块,游戏结束模块、游戏结束模块、升级检测模块和移动蛇身模块。

GamePlay_GameCheck

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 检测游戏运行状态函数,检测升级、没升级还是通关,提供给移动情况检测模块调用。 使用注意事项 三种情况分别调用不同的模块,游戏升级模块、增加蛇身模块、游戏结束模块。 void - I/O - 说明 - 说明 - GamePlay_GameCheck GamePlay.c 升级检测 void GamePlay_GameCheck (void)

沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第21页

GamePlay_MapInit

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 地图初始化函数,提供给游戏初始化模块调用。 使用注意事项 根据游戏级别初始化,不同级别的地图不同。 void - I/O - 说明 - 说明 - GamePlay_MapInit GamePlay.c 地图初始化 void GamePlay_MapInit (void)

GamePlay_SnakeInit

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 贪食蛇初始化函数,提供给游戏初始化模块调用。 使用注意事项 根据级别蛇的速度不同。 void - I/O - 说明 - 说明 - GamePlay_SnakeInit GamePlay.c 贪食蛇初始化 void GamePlay_SnakeInit (void)

沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第22页

GamePlay_MessageInit

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 显示信息初始化函数,包括游戏级别、分数、时间,提供给游戏初始化模块调用。 使用注意事项 初始化的信息初值都为0. void - I/O - 说明 - 说明 - GamePlay_MessageInit GamePlay.c 显示信息初始化 void GamePlay_MessageInit(void)

GamePlay_Start

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 类型 值 详细说明 根据游戏状态开始/暂停游戏 使用注意事项 void - I/O - 说明 - 说明 GamePlay__Start GamePlay.c 游戏开始/暂停 void GamePlay_Start(void) 沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第23页

-

GamePlay_CreateBean

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 void - - 详细说明 随机生成新食物的坐标 使用注意事项 生成的食物坐标不能超过地图边界或与障碍物重叠 I/O - 说明 - - 说明 - GamePlay_CreateBean GamePlay.c 生成食物 void GamePlay_CreateBean(void)

GamePlay_Grow

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 void - - I/O - 说明 - - 说明 - GamePlay_Grow GamePlay.c 增长蛇身 void GamePlay_Grow(void) 沈阳东软软件股份有限公司

概要设计报告 版本:0.1.0 第24页

详细说明 增加积分、根据方向增加蛇身长度1 使用注意事项 -

GamePlay_Move

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 清除蛇尾、根据方向创建新蛇头 使用注意事项 - void - I/O - 说明 - 说明 - GamePlay_Move GamePlay.c 移动蛇身 void GamePlay_Move(void)

GamePlay_LevelUp

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 void 沈阳东软软件股份有限公司

GamePlay_LevelUp GamePlay.c 游戏升级 void GamePlay_Level_Up(void) I/O - 说明 说明 - 概要设计报告 版本:0.1.0 第25页

值 详细说明 - - 游戏等级加1,调用地图初始化模块,调用贪吃蛇初始化模块 使用注意事项 -

GamePlay_GameOver

函数名 文件名 功能概要 记述形式 参数 类型 void 返回值 变量名 - 类型 值 详细说明 游戏结束,更改游戏状态 使用注意事项 - void - I/O - 说明 - 说明 - GamePlay_GameOver GamePlay.c 游戏结束 void GamePlay_GameOver(void)

沈阳东软软件股份有限公司

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

Top