基于Java的愤怒的小鸟游戏毕业论文

基于Java的愤怒的小鸟游戏的设计与实现

Java语言是一门面向对象编程语言,它不但汲取C++语言的各种精髓而且还抛弃了C++语言里晦涩难懂多继承指针等概念,所以Java语言具有特征便是功能超强和易用实用。

Jbox2D中不仅集成了大量物理运动学和机械运动学计算,而且也将物理仿真包集成到类对象中,同时对象也应用在开发人员与用户的交互界面中。所以我们只需要调用对象或者使用相应的功能,就可以模拟出现实生活中的速度、加速度、抛物线运动、重力、碰撞、反弹等各种各样真实的物理运动。

愤怒的小鸟游戏的视角是横向版本的水平视角。背景是为了报复偷鸡蛋的猪,鸟将自己的身体作为武器,就像炮弹一样从弹弓上发射而出,撞向绿猪搭建的堡垒,以达到摧毁绿猪的目的。游戏非常简单,小鸟跳上弹弓,发射角度和强度的改变导致小鸟的落点的不同,玩家需要良好的整体计算,适当的调节强度和角度,从而更准确地击中绿猪。每次击中绿猪,便可获得一定的分数,积累足够的分数便可以通关,游戏设计的体现了放松的情调,乐观的风格。

本文将介绍使用Java语言实现经典的益智类游戏作品“愤怒的小鸟”的开发。游戏将主要实现以下几个功能:游戏玩法功能、页面管理功能、难度和级别功能、碰撞功能、鸟类管理功能、玩家管理功能和备份功能等。此游戏不仅可以给玩家带来欢乐,也会使玩家对开发游戏产生极大地兴趣,让玩家切身体会到Java语言在生活方面的无处不在。

 Java;C++;Jbox2D;物理运动;愤怒的小鸟

目录

摘要

Abstract

1 绪论

1.1 游戏开发的背景

1.2 典型的Java游戏介绍

1.2.1 Minecraft介绍

1.2.2 Super Mario Bros介绍

1.2.3 The Sims介绍

1.3 游戏开发的意义

2 开发环境

2.1 开发语言

2.2 开发工具

2.3 JDK介绍

2.4 Java Awt介绍

2.5 Java Swing 介绍

2.6 Java语言开发平台搭建

3系统需求分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.1.4 发展可行性

3.2 性能需求分析

3.3 功能需求分析

3.4 系统UML分析

3.5界面需求分析

4 系统设计

4.1系统流程设计

4.2 系统架构设计

5 详细设计

5.1 主界面实现

5.2 游戏玩法实现

5.3 面板管理功能实现

5.4 等级、级别管理功能实现

5.5 碰撞管理功能实现

5.6 鸟类管理功能实现

5.7 胜利管理功能实现

5.8 玩家管理和备份管理功能实现

6 系统测试

6.1系统测试简介

6.2 系统测试方法

6.3 本系统测试

6.3.1 测试用例设计

6.3.2 测试方法和结论

结论

参考文献

致  谢

附录

外文原文

中文原文

 

1 绪论

1.1 游戏开发的背景

游戏如今已经成为人们生活中不可或缺的一部分,无论是处于童趣中的小孩、还是繁忙工作中的成人,游戏无疑在每一个人生活中起着非常重要的调剂作用。不管是实体玩具还是如今的电子游戏,它们都能给我们留下很多美好的回忆。

本人对Java语言有很大的兴趣爱好,大学期间便对其一直进行学习,而且游戏的制作同时也是我非常感兴趣的一个方面,在此之前也进行过一些小游戏的开发。经此次毕业设计机会,使得我想在专业导师的指导下通过这次毕业设计,来提高自己的Java语言水平,为以后的工作打下坚实的语言基础。

游戏名称是“愤怒的小鸟”,英文称为“AngryBird”。 “愤怒的小鸟”是著名游戏公司Rovio偶然间开发出来的益智游戏,从2009年12月上市到iOS。,讲述了鸟类和猪因为猪偷鸟蛋反生的一系列故事。游戏的类型版本是横向版本的水平视角,背景是为了报复偷鸡蛋的猪,鸟将自己的身体作为武器,就像炮弹一样从弹弓射出抛到绿猪搭建的堡垒,并将其摧毁。 游戏非常简单,小鸟跳上弹弓,发射角度和强度由玩家的自行控制,游戏中需要良好的整体计算,适当的调节强度和角度,从而更精确地击中猪。每次击中更多的绿猪,将获得大量的分数。游戏风格充满乐趣和幽默,游戏设计的体现了放松的情调,乐观的风格。

愤怒的小鸟这款游戏内容包含着丰富的人机交互:不管游戏本身设计的难度如何,只要玩家学会基本的游戏使用方法,大多数人都可以经过不断训练来打到通关这一目的。这一款益智类游戏的开发,目的是为了使人们更多了解物理引擎游戏所带来的与众不同。在今天如此复杂多样的游戏环境中,这一款游戏所带来的新鲜感让人为之疯狂,极大展现了Java语言在开发物理运动游戏方面独有的魅力,也极大促进了Java语言在游戏方面的发展。

1.2 典型的Java游戏介绍

1.2.1 Minecraft介绍

Minecraft近乎是沙盒游戏的鼻祖,是由瑞典Mojang AB公司和4J Studios联合开发,发行于2009年最后在2014冬季microsoft以25亿美金收购。

图1-1 minecraft

1.2.2 Super Mario Bros介绍

Super Mario Bros是任天堂游戏公司开发的,相信我们小时候都玩过这一款游戏,它几乎是所有红白机游戏中最畅销的一款,游戏风格是横版过关类型,这个游戏几乎移植到了所有已知的游戏平台,为游戏爱好者广泛而知。

1-2 Super Mario Bros

1.2.3 The Sims介绍

这是一款由Electronic Arts,简称EA开发的以模拟一个人生活中各种事情为主的模拟养成类游戏,。在这个模拟的世界中,玩家可以操作游戏人物进行近乎于现实生活的行动,仿造真实的情境,控制生理和精神的需求。

1-3 The Sims

1.3 游戏开发的意义

随着计算机科学的发展,游戏的发展已经取得非常显著的成果。图形计算、应用数学、数据结构、算法设计,甚至网络安全都已经应用在强大的游戏引擎中,而且由于快速做出原型是游戏开发的重要组成部分,所以应该学习如何高效率编写可重用的代码是一个很值得关注的问题。即使游戏没有为他人做出贡献,但至少它给了我很多的灵感,让我认识到作为一个程序员的兴趣所在,我可以继续为未来所需的知识量而努力。况且,游戏已经影响到人类生活的方方面面,成为生活不可或缺的一部分。甚至来说,游戏作为一种产业,已经跻身到互联网这个巨大的利益链的前列。目前,中国的游戏产业已然成为一个新的经济增长,极大地刺激了中国经济的发展,成为了中国六大支柱产业之一。

游戏的发展不仅带来了经济的利益,同时也极大地丰富了人类的生活,增强人们的幸福感,但游戏也存在不可避免的弊端,所以积极宣传中国传统文化,引导青少年健康游戏、快乐游戏应该是,每个游戏工作者的责任和义务。

2 开发环境

2.1 开发语言

Java语言是一种面向对象的编程语言,它不仅拥有着C++语言的长处,而且也将C++中的多重继承和指针等概念进行摒弃,Java语言不仅具有易用实用特征同时也是一种功能强大的编程语言

Java语言的特征大致可以分为以下一些:简单性、面向对象、分布式开发、稳健性、安全性、平台独立性、可移植性和多线程以及动态特性。这些特性以及Java语言本身的强大,是Java语言得以风靡全球的根本原因。

Java语言从外部看起来确实很像C++语言,但是为了使Java语言不那么晦涩难懂和难于学习,开发设计人员将很多原本用于C++语言的功能进行选择性删除。比如:Java语言将重载和多个继承功能中的重载运算符排除在外,并且去除主文件,从而消除了预处理器。再由于Java语言准确的是没有结构的,并且字符串数组是对象,所以指针存在也是不必要的。去除C++语言的糟粕后,Java语言可以自动管理参考对象和间接引用、自动垃圾收集,这些功能都可由使用户不必担心内存管理问题,从在将更多的时间和精力投入到研发开发当中,无疑是大大提升了编程开发效率。

如图2-1为Java语言总体特点:

图2-1 Java语言特点

由于Java语言是面向对象的语言。所以对于程序员来说,这意味着数据必须在方法中声明和操纵,笼统来说,程序员只需要学习对方法的熟悉和使用,而不是严格的创造方法过程。Java语言的特点使得语句不单单依赖于实现的方面,这种特殊的特点使得Java环境本身对新的硬件平台和操作系统是可移植的,并且起重要作用的Java编译器也是用Java语言所编写的,而且还包括用ANSIC语言编写的Java运行时系统。Java语言旨在适应进化,这说明它是一种动态语言。

由于Java语言的本质,Java游戏不会受到太多来自软件运行平台的诸多限制。假如我们以Java语言进行开发时,哪怕要重新编译成千上万个,也只不过是花费很少的时间便可以办到的事情,这是CPP编译速度所无法企及的。而Java语言语法在一定程度上要比C语言或者C++语言简洁方便很多,开发者只需要掌握一些基本语法,久而久之的学习,绝大多数人都可以使用Java语言轻易地进行开发程序。本文将以电脑为基础,采用Java语言来编写一款叫做“愤怒的小鸟”的游戏。

2.2 开发工具

Eclipse是一个将源代码的开放、基于Java语言具有可扩展性的编程开发平台。就其本身而言,它仅仅只有一个框架一组服务,将其通过插件组件来构建成一个开发环境。比较需要注意的是,Eclipse 还附带一个标准的插件集,插件集中包含了各种开发工具比如用于Java语言开发的Java开发工具(Java Development Kit,JDKEclipse是著名的跨平台开发环境和自由集成开发环境的组合。它最初主要是用于Java语言的开发,在Eclipse中通过安装不同的插件,使得Eclipse具有可以支持不同的计算机语言的特性,比如C++语言和Python语言等开发语言。Eclipse简单来说,它本身仅仅只是一个框架平台,但是各种各样插件的支持使得Eclipse具有其他功能死板IDE软件所难以拥有的方便灵动性,这一特性让许多软件开发公司都将以Eclipse作为基本框架来开发属于自己的IDE。

Eclipse起始于1999年4月,它最开始是由OTI和IBM这两家巨头公司的IDE产品开发项目组合力创建,。Eclipse基础代码最初是由IBM提供的,其中包括JDT 、PDE 和Platform。Eclipse项目经由IBM发起,经过这么多年的发展, Eclipse这一当初小小的项目已然发展成为了一个巨大的Eclipse联盟,目前为止,大概有140多家软件公司先后参与到Eclipse开发项目中,其中包括Red HatSybase等公司。Eclipse本身作为一个开源的项目,它的初衷作为是作为Visual Age for Java的替代品,所以Eclipse的界面效果与早期版本的Visual Age for Java相差不大,后来随着开放源代码,任何开发人员不仅可以免费得到Eclipse,而且可以在它的基础上进行各自插件的开发,这一缘由导致Eclipse受到越来越多的人的欢迎。在此之后还有包括Oracle等在内的许多软件大公司也先后加入了该项目,使得Eclipse到目前为止已经成为任何语言开发的IDE集成者,也是Java语言开发使用最广泛的平台。

2.3 JDK介绍

JDK是Java语言的软件开发工具包(Java Development Kit)java语言开发中占有核心的地位,它包括Java的运行环境java的基本工具和java的基础库等。

JDK包含的基本组件包括:

javac 编译器:javac编译器自动读取由java语言编写而成的类和接口的定义等,并将它们编译成字节代码(class文件)

jar打包工具:将相关的类文件整合为一个文件

javadoc文档生成器:从源码中将注释提取为一个文档

jdb debugger:调试工具

jav:可将编译后的java程序(.class后缀的程序)运行

appletviewer:可在脱机环境的情况下运行applet。

Javah:创建一个可以被Java程序所调用的C过程的头文件。

Javap:一种进行反编译的工具。

Jconsole: Java中可以对系统进行监控和调试的工具。如下图2-2所示:

图2-2 JDK基本组成

2.4 Java Awt介绍

AWT(Abstract Window Toolkit),中文翻译是:抽象窗口工具包,该包提供了一个GUI交互的接口,Java提供了用于创建和配置Java GUI的基本工具。AWT中图形操作函数与系统中图形功能之间提供了一对一的关系,称为peeres,当开发者使用AWT编写图形用户界面时,实际上是使用本地操作系统所提供的图形库。由于各种操作系统的风格和功能不同,所以提供的图形库不一样,在一个平台上可能存在的功能反而在另一个平台不存在。为了实现“写一次(编写一次,任意平台都可以运行”)Java语言的概念,AWT必须以牺牲独立平台功能为代价,由各种系统提供的AWT图形功能的交集来作为awt图形功能的可用功能。

如下图为awt的几种基本布局:

图2-3 awt的几种基本布局

AWT在基础组件(components)的GUI应用于提供JavaApplet和Java  Application。 由于Java是一种独立于平台的编程语言,而是通常将GUI链接到特定的平台,Java技术允许使用相应的AWT可以提供一个平台接口独立应用于某个机器,这保证了相同的程序操作GUI 在不同的机器上具有相似的界面效果(但是并不能保证一定相同)。

来自AWT Java1.0(旧AWT)的和AWT Java1.1(新AWT)之后的有着截然不同的情况,新的AWT相比于旧的AWT有这更显着的改进并且摒弃了很多缺点,从而新的AWT可以更加方便的使用,这篇论文主要是讨论新的AWT,但不可否认在Java1.1中更旧版本的AWT程序也可以运行。

Abstract Window Toolkit(AWT)使用Java语言来操纵位图显示窗口,为一个图形过程库。 最后,扩展设计人员将AWT扩充为AWT Window Alternative Toolkit和Applet Widget Toolkit。 最新的图形界面叫做Swing,扩展了AWT,Swing应用程序开发人员可以使用它来生成独立的GUI平台对象。

2.5 Java Swing 介绍

Java Swing 作为一个GUI工具包,是专门为Java设计与使用的,也是Java基础类的一部分,其中包含的一些组件如文本框、分割窗格、表格、按钮等

Java Swing可以提供的屏幕显示元素,在某种程度上要比Java Awt提供的要好的多。由于Java Swing使用纯Java语言编写的,在这一点上不与AWT相同,所以Java Swing拥有与Java语言一样的可扩展性,可以在多种平台上使用,并且Java Swing也是JFC的一部分。Java Swing可以对面板和主题进行变更(操作系统中存在着默认的主题,不同操作系统的主题不尽相同),这并不是真正的去使用这种操作系统的设备,只是在一定程度上在表面上模仿。这些特殊的功能导致程序猿可以可以使用Java的任何面板,并且不需要操作系统的限制。如下图2-4为Java swing 基本组成:

图2-4 Java swing 基本组成

JFrame : java中的GUI是以JFrame为基础的一种基本思路,它是屏幕上创建window的对象,通过调用一些特定的方法,可以实现界面的最大化、最小化、关闭。
    JPanel :作为Java GUI 下的swing中的面板容器类,它包含在javax.swing 包中,使用的时候可以对其进行嵌套,它的功能是在窗体的使用中对其具有相同逻辑功能的组件进行整合,同时也是是一种轻量级容器,使用中可以加入到JFrame窗体中。。

JLabel :JLabel 对象的功能是可以将文本、图像进行显示或同时对二者进行显示。它有垂直和水平两种对齐方式,可以指定标签显示区中的标签内容在任意一处进行对齐。通常默认情况下,标签默认在显示区域内居中垂直对齐,而且,显示文本的标签是开始一种边对齐,显示图像的标签则是居中水平对齐。

JTextField :它可以进行编辑单行文本,是一个轻量级的组件。

JPasswordField :功能是让我们输入了一个文本框类似于输入框,但是在输入密码的时候讲密码进行隐藏,类似替换成*符号。

JButton :JButton 类的实现类,功能是在面板中创建按钮,可以对齐进行点击之类的操作。比如我们经常使用的登录、注册按钮。

2.6 Java语言开发平台搭建

首先登陆到官方网站Oracle | Cloud Applications and Cloud Platform之后跳转到JDK下载页面下载Java JDK ,版本选择最新的jdk1.8.0_131进行下载,下载界面如下图2-5所示:

2-5 下载JDK

下载完成后安装JDK,安装路径为F:\Java\jdk1.8.0_131,安装路径如下图2-6所示

2-6 安装路径

安装完成JDK之后登陆网址https://www.Eclipse.org进行下载Eclipse,下载界面如下图2-7所示

图2-7 下载Eclipse

下载后安装完成打开Eclipse点击菜单栏上的window-preference进行配置JDK,之后便可以使用Eclipse进行编程开发,配置方式如下图2-8所示

图2-8 配置JDK

如下图2-9位Eclipse的基本使用界面,通过多次使用来进行熟悉即可。

图2-9 Eclipse基本使用界面

毕业设计下载地址

基于java的愤怒的小鸟游戏系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
☞☞☞点击查看项目整体介绍 https://download.csdn.net/download/dwf1354046363/87813609

更有100多毕业设计项目供你挑选:

Java毕业设计174例,包含部署视频-CSDN博客文章浏览阅读3.5w次,点赞78次,收藏887次。基于Java的毕业设计,包含部署视频,一步一步教你加载数据库,运行,功能演示_java毕业设计https://blog.csdn.net/dwf1354046363/article/details/124463185

  • 22
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1.1 手机软件现状 在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端: 1. 传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。 2. 传统手机访问互联网是通过WAP(Wireless Application Protocal),所有网络资源必须接通网络才能在线访问,非常耗时、费用亦很高。 而Java技术在无线应用方面的优势非常明显: 1. 应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空间大。 2. Java技术提供了一个类库,它使的应用开发商可以创建更为直觉、丰富的用户界面(GUI); 3. Java技术使网络带宽的应用更为有效,因为应用程序可以下载到器件上,并在本地运行,仅仅是在连接到服务器时才会占用网络带宽。 基于以上分析Java手机将是未来手机的发展方向,是业界的热点。 1.2 J2ME介绍 虽然 Java 已经被用到许多企业级软体上,可是其实骨子里面还是非常适合用在嵌入式系统之中。Java平台演进到Java2后,Java平台分别针对不同领域的需求被分成四个版本,亦即J2EE、J2SE、J2ME以及JavaCard。其中J2ME定位在消费性电子产品的应用上。这个版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。这个版本的应用层面相当广泛,会是未来Java平台发展的重点项目。 J2ME在1999年的JavaOne开发人员大会上初次亮相,它的目标是面向智能无线设备和小型计算机设备的开发人员。J2ME的一个关键优点是,J2ME与所有支持Java的设备都是兼容的。支持Java的设备就是任何运行Java虚拟机器的计算机。Motorola、Nokia等生产厂商都生产支持Java的设备。、 J2ME平台是由配置(Configuration)和简表(Profile)构成的。配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机。简表是针对一系列设备 提供的开发包集合。在J2ME中还有一个重要的概念是可选包(Optional Package),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME中制定了JSR82(Bluetooth API)提供了对蓝牙的支持。 目前,J2ME中有两个最主要的配置,分别是Connected Limited Devices Configuration(CLDC)和Connected Devices Configuration(CDC)。 作为第一个面对小型设备的Java应用开发规范,CLDC是由包括Nokia,Motorola和Siemens在内的18家全球知名公司共同协商完成的。CLDC是J2ME核心配置中的一个,可以支持一个或多个profile。其目标主要面向小型的、网络连接速度慢、能源有限(主要是电池供电)且资源有限的设备,如手机、PDA等。 而CDC则是主要用于运算能力相对较佳、在电力供应上相对比较充足的嵌入式装置 (比方说冷气机、电冰箱、电视机机顶盒 (set-top box))

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易小侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值