《飞机大战游戏》需求说明书.docx
《《飞机大战游戏》需求说明书.docx》由会员分享,可在线阅读,更多相关《《飞机大战游戏》需求说明书.docx(19页珍藏版)》请在冰豆网上搜索。
《飞机大战游戏》需求说明书
《飞机大战游戏》需求说明书
系统设计概要说明书V1.0
飞机大战游戏
表5-4Bullet的字段及说明
字段名称
数据类型
说明
pb_x
int
我方飞机子弹坐标
pb_y
int
我方飞机子弹坐标
epb_x
int
敌方飞机子弹坐标
epb_y
int
敌方飞机子弹坐标
boss_x
int
boss子弹坐标
boss_x
int
boss子弹坐标
image
Image
子弹资源图片
爆炸信息表(Explode)字段及说明表5-5。
表5-5Explode的字段及说明
字段名称
数据类型
说明
ep_x
int
爆炸坐标
ep_y
int
爆炸坐标
image
Image
爆炸资源图片
道具信息表(Tools)字段及说明表5-6。
表5-6Tools的字段及说明
字段名称
数据类型
说明
t_x
int
道具坐标
t_y
int
道具坐标
image
Image
道具资源图片
BOSS信息表(BOSS)字段及说明表5-7。
表5-7BOSS的字段及说明
字段名称
数据类型
说明
bo_x
int
Boss坐标
bo_y
int
Boss坐标
image
Image
Boss资源图片
1.1需求描述
在上面我们分析出了激战游戏所需要的字段,以及模拟的系统中的相关功能。
在本次项目开发中我们将会为其实现一个具有一定功能和友好用户界面的飞机大战游戏系统。
该系统使用流程如下。
游戏名:
飞机大战游戏。
开始游戏:
按Enter键进入游戏。
基本业务:
实现玩家移动、发射子弹、敌机移动、敌机发射子弹、碰撞爆炸、获取道具、获取道具奖励、通过玩家击落敌机计算积分,击杀BOSS结束游戏。
玩家击落敌机每次增加10分,积分达到100分,出现Boss。
1.2功能分析
1.2.1背景业务
1、绘制背景
通过GDI+绘制背景,背景可随机产生,每次玩家进入游戏,都可随机产生背景
2、背景移动
背景从上往下移动,当背景的上边框超过游戏界面下边框时应自动补图。
1.2.2玩家实现
1、玩家移动
玩家通过键盘wasd移动,j发射子弹
提示:
玩家飞行不可超出游戏界面
1.2.3敌机实现
1、创建敌机
通过确定敌机ep_x坐标随机产生敌机
2、敌机移动
改变敌机ep_y坐标从上往下飞行,注意:
当飞机飞出游戏边界需要移除敌机
1.2.4子弹实现
1、绘制子弹
创建一颗子弹Drawme()方法
2、子弹移动
子弹分为2种,我军子弹,敌军子弹
3、创建子弹
子弹是多个不确定个数,用集合保存子弹,在业务逻辑处理类中通过调用子弹类的绘制方法,依次遍历子弹。
注意:
子弹创建之后可能是无限发射,需要用概率来解决子弹无限发射问题
1.2.5爆炸实现
1、绘制爆炸
创建一个爆炸Drawme()方法
2、判断爆炸
爆炸分2种情况,敌机遇到玩家子弹爆炸和玩家血量为零时发生爆炸,爆炸是一组连贯的资源图片,判断数组索引来影响爆炸顺序,爆炸使用矩形碰撞方式,通过调用矩形IntersectsWith()方法,解决爆炸问题
1.3项目实现
1.3.1运行环境
最低配置
CPU:
486以上
内存:
32MB
显卡:
16Bit支持DirectX,800×600
推荐配置
CPU:
MMX200以上
内存:
64MB
显卡:
16Bit支持DirectX,800×600
1.3.2类图构成
1.3.3功能说明
序号
功能项
描述
1
飞机能够移动,发射子弹,用子弹击毁敌人。
1.用wasd四个键控制飞机上下左右的移动。
2.j键发射子弹。
3.子弹发射出去,撞击敌军使之爆炸。
2
飞机通过吃掉道具,改变自身属性。
1.飞机通过接触道具获得道具的加成。
2.增强子弹威力:
3
敌军飞机可以击毁我军飞机。
1.敌军飞机由电脑随机产生。
2.当敌军飞机子弹击中我军飞机,我军飞机血量减去10。
3.当我军飞机碰撞敌军飞机时,我军损失一定生命值,敌军撞毁。
当生命值为0时,则游戏结束。
4
Boss出现以及打败Boss。
1.我军得到100分数,Boss出现。
2.Boss拥有比普通敌机更多的血量和更高的攻击。
3.当我军飞机与Boss碰撞时,我军直接游戏结束。
4.当我军子弹打中Boss时,可以适当的加血,但血量不会超出总血量。
1.4业务逻辑
1.4.1主界面模块
1.进入游戏的初始状态如下图状态。
通过用户双击桌面上的游戏图标则会弹出此界面。
2.单击Enter键进入游戏
游戏运行画面
获得道具变换子弹
获得一定分数后,BOSS就会出现
如果将BOSS打死,将出现游戏胜利页面
游戏结束页面
1.4.2操作逻辑
页面、动作
调用方法
传值描述
游戏页面
Update()paint()
无返回值,加载窗体,绘制游戏对象,重绘。
按w键
move()
无参数,无返回值,执行后位置向上移动或者不动。
按a键
move()
无参数,无返回值,执行后位置向左移动或者不动。
按s键
move()
无参数,无返回值,执行后位置向下移动或者不动。
按d键
move()
无参数,无返回值,执行后位置向右移动或者不动。
按j键
hitEnPlane()
hitBoss()
无返回值,点击后发射子弹