目录
摘要 i
Abstract ii
1 绪论 1
1.1 游戏开发的背景 1
1.2 典型的Java游戏介绍 1
1.2.1 Minecraft介绍 1
1.2.2 Super Mario Bros介绍 2
1.2.3 The Sims介绍 3
1.3 游戏开发的意义 3
2 开发环境 4
2.1 开发语言 4
2.2 开发工具 5
2.3 JDK介绍 5
2.4 Java Awt介绍 6
2.5 Java Swing 介绍 7
2.6 Java语言开发平台搭建 9
3系统需求分析 11
3.1 可行性分析 11
3.1.1 技术可行性 11
3.1.2 经济可行性 11
3.1.3 操作可行性 11
3.1.4 发展可行性 12
3.2 性能需求分析 12
3.3 功能需求分析 12
3.4 系统UML分析 13
3.5界面需求分析 14
4 系统设计 16
4.1系统流程设计 16
4.2 系统架构设计 17
5 详细设计 20
5.1 主界面实现 20
5.2 游戏玩法实现 22
5.3 面板管理功能实现 26
5.4 等级、级别管理功能实现 28
5.5 碰撞管理功能实现 32
5.6 鸟类管理功能实现 35
5.7 胜利管理功能实现 38
5.8 玩家管理和备份管理功能实现 40
6 系统测试 44
6.1系统测试简介 44
6.2 系统测试方法 45
6.3 本系统测试 45
6.3.1 测试用例设计 45
6.3.2 测试方法和结论 46
结论 47
参考文献 48
致 谢 49
附录 50
外文原文 50
中文原文 55
3.3 功能需求分析
需求分析是对用户需求和要求的分析。需要准确评估用户需求的结果从而反映实际用户需要,这将直接影响整个设计的流程,也会对系统的使用产生影响。关注需求评估来完成调查收集和研究,可能会受到数据管理和信息安全过程的影响。一般用户相对于开发者来说,绝大部分用户都是缺少计算机相关知识,并且无法确定计算机是否可以为自己做到或者做不到一些事情,准确表达他们的需求是需要的,必须通过跟用户的深入了解来获取用户的需求从而准确的确定计算机的功能。
搜索用户分析和细化特征等用户的描述的信息是必要的。它是软件开发过程的第一阶段主要部分,主要任务是了解您需要什么,需要做个什么样的系统,使完整的目标系统拥有清晰准确的功能,并且可以进行书面表达。
在愤怒的小鸟程序中,主要实现以下功能
游戏玩法功能:
(1)能实现发射器创建、发射角度、发射力度等
(2)可以实现小鸟飞行功能,包括小鸟飞行抛物线、小鸟飞行悬停
(3)实现游戏中猪的移动功能,包括猪的根据级别不同改变移动速度、猪在哪里移动
(4)碰撞功能:实现小鸟与障碍的碰撞、小鸟与猪的碰撞、鸡蛋与障碍物的碰撞、鸡蛋与猪的碰撞、猪与障碍物的碰撞
页面管理功能:实现各个页面功能,包括主界面、载入游戏界面、控制帮助界面、跳转界面功能等
难度、级别功能:实现游戏难度功能,难度不同猪的移动速度不同,实现级别功能,级别不同地图难易程度也不同
实体类管理功能:创建游戏中各种实体类,包括鸟的种类、猪、障碍物、草地等
玩家管理功能和备份功能:实现玩家信息管理以及游戏信息保存的功能
如下图3-1所示:
图3-1 总体功能需求图
3.4 系统UML分析
UML是在面向对象的方法Booch,TMO,OOSE等基础上开发的方法,以及根据许多其他方法和材料的基础从而衍变出来的。 UML符号是为各种图形符号表示,消除混淆、冗余符号或很少使用以及容易导致的图形符号,同时添加一些新的图形符号。
UML是统一建模语言的缩写,也称为统一建模语言。它是用于可视化建模的一种语言。 UML是开发人员用于建模事物的客观标记,同时也为开发人员了解什么样的系统工作以及整个过程做出了准备工作。 现在我们在这个基础上对愤怒的小鸟进行建模分析,UML用例图如下图3-2所示:
图3-2 UML界面用例图
图3-3 UML游戏操作用例图
3.5界面需求分析
目前,界面设计已成为软件质量评估的重要指标,良好的用户界面能提高用户操作系统的信心和增加兴趣、提高效率。 客户界面是指与用户与机器进行交互的软件系统界面,通常覆盖界面格式输出,输入和其他人机对话。
1.输出设计
输出是游戏程序解决基本信息的输入,产生高质量的正确信息,并使其具有一定的格式,供管理人员使用,这是发布设计和目标的主要责任和目标。
与系统开发过程的实现不同,不是从输入设计到输出,而是输处设计到输入到设计。 这是因为输出表与用户直接链接,应设计为确保用户可以方便地使用输出表格,及时将有用的信息可以反映在各个部门。
2.输入设计
收集和输入输出数据更加不方便,需要大量的人力物力,而且经常出错。 一旦不正确的数据输入系统,处理后的输出会扩大这些错误,所以输入数据的准确性对系统的整体性能起决定性的作用。输入设计有以下几点原则:
1)输入量必须最小程度的满足处理要求。 输入数据越少,错误率会越小,数据准备时间也较少。
2)如果可能的话,尝试尽可能方便的准备和输入过程,以减少更多的发生错误发生率。
3)尽早检查输入数据(尽可能靠近原始数据生成点),及时进行纠错更改。
4)可能会尽可能早地将输入数据记录所需的处理形式进行记录,以防止从一个介质传输到另一个介质而可能发生的转录数据错误。
4 系统设计
4.1系统流程设计
在设计开发基于Java语言的愤怒的小鸟的时候,必须先进行需求分析,这样才可以对系统总体进行概括性规划,从而进行系统功能模块的设计、测试、基于Java语言的愤怒的小鸟的总体设计流程图,
如下图4-1所示:
图4-1 总体流程设计图
该程序在游戏概念和属性中使用面向对象的模型。 运行程序后,用户可以选择运行选项菜单,屏幕刷新屏幕重新设计一定频率,实时反映游戏状态。
如下图3-2显示了游戏控制的流程图。 首先,当游戏运行时会成为测试的关键角色,同时响应方向。这是对鸟类在屏幕的主要方向的响应,同时检测释放的鸟类的强度。 如果你摧毁对象超过一个固定的分数,导致游戏结束。 当物体被鸟类摧毁时,根据物体的破坏得到不同的分数。
同时,还有其他检测键,主要用于检测菜单键。 菜单按钮包括检测输出和返回参数。 当游戏检测到退出按钮时,游戏结束。 当检测到游戏的返回键时,游戏将返回到主屏幕。
部分代码以及相应的页面布局:
public class MenuHomeView extends GameViewMenu
{
private JButton newButton,loadButton,optionsButton,exitButton;
public MenuHomeView() {
newButton = new JButton("新游戏");
newButton.setSize(250,40);
newButton.setLocation(frameWidth/2-115, 150);
loadButton = new JButton("载入游戏");
loadButton.setSize(250,40);
loadButton.setLocation(frameWidth/2-115, 225);
optionsButton = new JButton("控制帮助");
optionsButton.setSize(250,40);
optionsButton.setLocation(frameWidth/2-115, 300);
exitButton = new JButton("退出游戏");
exitButton.setSize(250,40);
exitButton.setLocation(frameWidth/2-115, 375);
backButton.setVisible(false);
this.add(newButton,new Integer(1));
this.add(loadButton,new Integer(1));
this.add(optionsButton,new Integer(1));
this.add(exitButton,new Integer(1));
}
public JButton getNewButton()
{
return newButton;
}
public JButton getLoadButton()
{
return loadButton;
}
public JButton getOptionsButton()
{
return optionsButton;
}
public JButton getExitButton()
{
return exitButton;
}}