系统设计概要说明书V 1.0飞机大战游戏
1.1背景
拟开发一款激战游戏系统,该系统要实现的功能包括。
玩家管理:绘制玩家
敌机管理:绘制敌机、敌机移动
按键管理:操作控制
地图管理:绘制地图、地图移动
子弹管理:绘制子弹、子弹移动
道具管理:绘制道具、道具功能处理、道具移动
爆炸管理:绘制爆炸、移除爆炸
BOSS管理:绘制BOSS、BOSS移动
业务逻辑处理:产生多个敌机、多个子弹、碰撞、
1.2数据分析
分析上面的需求,我们可以得出,系统中应该有如下数据表。
地图信息(BackGround)字段及说明如表5-1。
表5-1 BackGround的字段及说明字段名称数据类型说明bg_x int 地图坐标
bg_y int 地图坐标
image Image 资源图片
玩家信息表(Plane)字段及说明表5-2。
表5-2 Plane的字段及说明
字段名称数据类型说明pl_x int 玩家飞机坐标
pl_y int 玩家飞机坐标
image Image 玩家资源图片
scope int 玩家分数
poold int 玩家血量
敌人信息表(EnPlane)字段及说明5-3。
表5-3 EnPlane的字段及说明字段名称数据类型说明ep_x int 敌方飞机坐标
ep_y int 敌方飞机坐标
image Image 敌方飞机资源图片
子弹信息表(Bullet)字段及说明表5-4。
表5-4 Bullet的字段及说明
字段名称数据类型说明
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-5 Explode的字段及说明
字段名称数据类型说明
ep_x int 爆炸坐标
ep_y int 爆炸坐标
image Image 爆炸资源图片
道具信息表(Tools)字段及说明表5-6。
表5-6 Tools的字段及说明
字段名称数据类型说明
t_x int 道具坐标
t_y int 道具坐标
image Image 道具资源图片
BOSS信息表(BOSS)字段及说明表5-7。
表5-7 BOSS的字段及说明
字段名称数据类型说明
bo_x int Boss 坐标
bo_y int Boss 坐标
image Image Boss资源图片
1.3需求描述
在上面我们分析出了激战游戏所需要的字段,以及模拟的系统中的相关功能。
在本次项目开发中我们将会为其实现一个具有一定功能和友好用户界面的飞机大战游戏系统。
该
系统使用流程如下。
游戏名:飞机大战游戏。
开始游戏:按Enter键进入游戏。
基本业务:实现玩家移动、发射子弹、敌机移动、敌机发射子弹、碰撞爆炸、获取道具、获取道具奖励、通过玩家击落敌机计算积分,击杀BOSS结束游戏。
玩家击落敌机每次增加10分,积分达到100分,出现Boss。
1.4功能分析
1.4.1背景业务
1、绘制背景
通过GDI+绘制背景,背景可随机产生,每次玩家进入游戏,都可随机产生背景
2、背景移动
背景从上往下移动,当背景的上边框超过游戏界面下边框时应自动补图。
1.4.2玩家实现
1、玩家移动
玩家通过键盘wasd移动,j发射子弹
提示:玩家飞行不可超出游戏界面
1.4.3敌机实现
1、创建敌机
通过确定敌机ep_x坐标随机产生敌机
2、敌机移动
改变敌机ep_y坐标从上往下飞行,注意:当飞机飞出游戏边界需要移除敌机
1.4.4子弹实现
1、绘制子弹
创建一颗子弹Drawme()方法
2、子弹移动
子弹分为2种,我军子弹,敌军子弹
3、创建子弹
子弹是多个不确定个数,用集合保存子弹,在业务逻辑处理类中通过调用子弹类的绘制方法,依次遍历子弹。
注意:子弹创建之后可能是无限发射,需要用概率来解决子弹无限发射问题
1.4.5爆炸实现
1、绘制爆炸
创建一个爆炸Drawme()方法
2、判断爆炸
爆炸分2种情况,敌机遇到玩家子弹爆炸和玩家血量为零时发生爆炸,爆炸是一组连贯的资源图片,判断数组索引来影响爆炸顺序,爆炸使用矩形碰撞方式,通过调用矩形IntersectsWith()方法,解决爆炸问题
1.5项目实现
1.5.1运行环境
最低配置
CPU:486以上
内存:32MB
显卡:16Bit 支持DirectX, 800×600
推荐配置
CPU:MMX 200以上
内存:64MB
显卡:16Bit 支持DirectX, 800×600
1.5.2类图构成
1.5.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.6业务逻辑
1.6.1主界面模块
1.进入游戏的初始状态如下图状态。
通过用户双击桌面上的游戏图标
则会弹出此界面。
2.单击Enter键进入游戏
游戏运行画面
获得道具变换子弹
获得一定分数后,BOSS就会出现
如果将BOSS打死,将出现游戏胜利页面
游戏结束页面
1.6.2操作逻辑
页面、动作调用方法传值描述
游戏页面Update() paint() 无返回值,加载窗体,绘制游戏对
象,重绘。
按w键move() 无参数,无返回值,执行后位置
向上移动或者不动。
按a键move() 无参数,无返回值,执行后位置
向左移动或者不动。
按s键move() 无参数,无返回值,执行后位置
向下移动或者不动。
按d键move() 无参数,无返回值,执行后位置
向右移动或者不动。
按j键hitEnPlane()
无返回值,点击后发射子弹
hitBoss()。