当前位置:文档之家› 软件开发设计报告5_12

软件开发设计报告5_12

《软件开发实践》 设计报告

项目名称: 打砖块小游戏

姓名 学号 工作量 何建清 2012141463199 80% 廖宇 2012141463001 20%

2014 年 5 月 4 日 - 0 -

目录 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 开发目的 软件开发实践课程项目结题报告 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

2.3 模块设计 2.3.1 功能 开始游戏:即开始游戏 选择关卡:即选择游戏关卡,本游戏总共有三关供选择 退出游戏:即退出游戏 2.3.2 算法 碰撞检测 1、矩形和矩形进行碰撞检测算法

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

进入游戏菜单 菜单目录: 开始游戏 选择关卡 退出游戏

开始游戏

游戏失败 记录分数 通关成功 记录分数

重新开始 退出游戏 读取进度 3

我们假设矩形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(),游戏结束

相关主题