软件开发设计报告5_12

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《软件开发实践》

设计报告

项目名称:打砖块小游戏

姓名学号工作量

何建清2012141463199 80%

廖宇2012141463001 20%

2014 年 5 月 4 日

目录

1.引言........................................................................................................... 错误!未定义书签。

1.1 开发目的......................................................................................... 错误!未定义书签。

1.2 开发背景......................................................................................... 错误!未定义书签。

1.3 参考资料......................................................................................... 错误!未定义书签。2.软件分析设计.. (1)

2.1 游戏描述 (1)

2.1.1 对需求的支持 (1)

2.1.2 游戏目标 (1)

2.2 总体设计 (1)

2.2.1 游戏运行环境 (1)

2.2.2 游戏描述 (1)

2.2.3 游戏框架 (1)

2.3 模块设计 (2)

2.3.1 功能 (2)

2.3.2 算法 (2)

2.4 界面设计 (3)

2.5 代码设计 (3)

2.6 游戏素材展示 (4)

2.7 开发环境 (5)

3. 项目管理和保障 (5)

3.1 项目计划 (5)

3. 2 游戏使用说明 (5)

一、引言

1.1 开发目的

软件开发实践课程项目结题报告

1.2 开发背景

项目概述

我们所做的项目是一款主要采用的编程语言为C、C++编写很简单但娱乐性很好的小游戏----打砖块。我们所设计的打砖块与传统的有相似之处。

1.3参考资料

《Visual C++游戏开发技术与实践》

《计算机游戏编程--基础篇》

《游戏编程ALL IN ONE》

二、软件分析设计

2.1游戏描述

2.2.1 对需求的支持

满足基本的打砖块游戏体验。

2.2.2 游戏目标

开发一个可供学习交流的打砖块小游戏。

2.2总体设计

2.2.1 游戏运行环境

WindowsXp Windows 7 系统

Visual C++集成开发环境

2.2.2 游戏描述

本游戏是打砖块游戏,游戏规则如下:玩家拥有一个小球,当做自己的命。玩家通过控制球板来防止小球落到游戏窗口底部,万一落到底部,小球就会消失,玩家也就输了。小球在球板和砖块直接反弹,小球碰到砖块,砖块就会被摧毁从而消失。摧毁一个关卡里的所有砖块,玩家顺利进入下一关。当玩家通过所有的关卡,游戏就胜利结束了。小球一旦碰到游戏窗口底部,游戏就失败结束。

2.2.3 游戏框架

2.3 模块设计

2.3.1 功能

开始游戏:即开始游戏

选择关卡:即选择游戏关卡,本游戏总共有三关供选择

退出游戏:即退出游戏

2.3.2 算法

碰撞检测

1、矩形和矩形进行碰撞检测算法

一般规则的物体碰撞都可以处理成矩形碰撞,实现的原理就是检测两个矩形是否重叠。

进入游戏菜单 菜单目录: 开始游戏 选择关卡 退出游戏 开始游戏 游戏失败 记录分数 通关成功 记录分数 重新开始 退出游戏 读取进度

我们假设矩形1的参数是:左上角的坐标是(x1,y1),宽度是w1,高度是h1;矩形2的参数是:左上角的坐标是(x2,y2),宽度是w2,高度是h2。在检测时,数学上可以处理成比较中心点的坐标在x和y方向上的距离和宽度的关系。即两个矩形中心点在x方向的距离的绝对值小于等于矩形宽度和的二分之一,同时y方向的距离的绝对值小于等于矩形高度和的二分之一。下面是数学表达式:

x方向:| (x1 + w1 / 2) –(x2 + w2/2) | < |(w1 + w2) / 2|

y方向:| (y1 + h1 / 2) –(y2 + h2/2) | < |(h1 + h2) / 2|

但是矩形碰撞只是一种比较粗糙的碰撞检测算法,因为很多实际的物体可能不是一个规则的矩形。

2、圆形和圆形的碰撞检测算法

圆形和圆形的碰撞应该说是一种最简单的碰撞,因为在数学上对于两个圆形是否发生重叠,有计算两个圆心之间的距离的公式。那么条件就变为:计算两个圆心之间的距离是否小于两个圆的半径和。假设圆形1的左上角坐标是(x1,y1),半径是r1,圆形2的左上角的坐标是(x2,y2),半径是r2。因为MIDP1.0中没有浮点数,而且浮点数的运算比较慢,所以我们将条件做一个简单的变换:对于条件的两边都进行平方,这样就去掉了开方的运算步骤。下面是数学表达式:

(x1 –x2)2 + (y1 –y2)2 < (r1 + r2)2

2.4 界面设计

本游戏开始界面是一个Windows窗口,

窗口左上角是菜单栏,菜单栏有两个选项:“游戏”,“帮助”

“游戏”里包括4个选项:“第一关”、“第二关”、“第三关”、“退出”,

“第一关”、“第二关”、“第三关”分别是游戏的三个关卡;“退出”是游戏退出功能;

“帮助”是关于游戏信息的按钮。

2.5 代码设计

本游戏代码由C++语言编写

主要功能类:

OnDraw(),绘制挡板,小球并将其显示出来

OnFileNewgame(),游戏第一关

OnFileNextgame(),游戏第二关

OnThirdgame(),游戏第三关

UpdateDC(),游戏功能设计,包括设置鼠标移动标志、保存鼠标位置、判断小球是否击中墙壁、判断小球是否击中砖块、判断小球是否击中挡板、设置小球的速度、判断游戏是否结束、恭喜顺利通关提示

HitWallTest(),小球与墙之间的碰撞检测

HitBrickTest(),小球与砖之间的碰撞检测

OnMouseMove(),监测鼠标移动

OnTimer(),游戏计时器

GameOver(),游戏结束

相关文档
最新文档