基于Java的愤怒的小鸟游戏的设计与实现.docx
- 文档编号:608901
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:82
- 大小:1.39MB
基于Java的愤怒的小鸟游戏的设计与实现.docx
《基于Java的愤怒的小鸟游戏的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Java的愤怒的小鸟游戏的设计与实现.docx(82页珍藏版)》请在冰点文库上搜索。
毕业设计(论文)
论文题目 基于Java的愤怒的小鸟游戏的设计与实现
ThesisTopic
DesignandimplementationofangrybirdsgamebasedonJava
20XX年X月XX日
第3页
毕业设计(论文)任务 书
第1页
毕业设计(论文)题目:
基于Java的愤怒的小鸟游戏的设计与实现
毕业设计(论文)要求及原始数据(资料):
1.综述国内外物体碰撞、滚动、滑动和弹跳功能技术研究现状;2.深入了解Javaawt相关技术;
3.熟练掌握Javaawt的应用与分析,训练编写GUI的能力;
4.设计并实现愤怒的小鸟中针对物理碰撞效果的实现;
5.深入分析愤怒的小鸟中jbox2D物理引擎的关键技术与编写语言;
6.训练检索文献资料和利用文献资料的能力;
7.训练撰写技术文档与学位论文的能力。
毕业设计(论文)主要内容:
1.综述Javaawt在愤怒的小鸟游戏开发中的应用;
2.了解jbox2D物理引擎的相关技术;
3.熟悉Javaawt以及jbox2D物理引擎的开发环境;
4.设计Javaawt中针对外部输入对应在游戏中效果的体现;
5.深入分析Javaawt和jbox2D关键技术与编写语言Java的设计流程;6.熟练掌握基于java的愤怒的小鸟的游戏功能编写;
7.设计与实现愤怒的小鸟游戏功能处理程序。
学生应交出的设计文件(论文):
1.内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;
2.包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。
日期
要求设计(论文)工作起止日期
指导教师签字
主要参考文献(资料):
[1]基于Box2D物理引擎的刚体运动和碰撞模拟[J].奚焱. 电脑编程技维护.2011(24)
巧与
[2]基于物理引擎三维物理仿真实验的实现方法[J].田超,张文俊,张小凤,刘东平. 微
型电脑应用.2010(02)
[3]虚拟现实环境中的物理模拟及物理引擎应用的研究[J].陈定方. 湖北工业大学学报.2008(02)
[4]游戏音效在物理引擎中的运用[J].魏婷,郑豪. 福建电脑.2008(01)
[5]探析JAVASwing工具包在图形用户界面设计中的应用[J].苏碧霞. 信息与电脑(理论版).2013(05)
[6]Swing可视化组件多线程操作机制研究[J].胡家芬. 电脑知识与技术.2012(31)
[7]一种Swing组件的动态国际化解决方案[J].肖荣. 软件导刊.2009(10)
[8]使用JavaSwing组件进行事件处理方法的分析与比较[J].张海越,范曦. 软件导刊.2013(06)
[9]BeginningJavaObjectsJacquieBarker2005-
[10]AportableAWT/SwingarchitectureforJavagamedevelopmentYi‐
HsienWangSoftw:
Pract.Exper.2007(07)
[11]Objectiveviewpoint:
JavaAWTlayoutmanagement101GeorgeCrawfordCrossroads1998(01)
专业班级
学生
教研室主任审查签字
日期
系主任批准签字
日期
基于Java的愤怒的小鸟游戏的设计与实现
摘要
Java语言是一门面向对象的编程语言,它不但汲取了C++语言的各种精髓,而且还抛弃了C++语言里晦涩难懂的多继承和指针等概念,所以Java语言具有的特征便是:
功能超强和易用实用。
Jbox2D中不仅集成了大量物理运动学和机械运动学计算,而且也将物理仿真包集成到类对象中,同时对象也应用在开发人员与用户的交互界面中。
所以我们只需要调用对象或者使用相应的功能,就可以模拟出现实生活中的速度、加速度、抛物线运动、重力、碰撞、反弹等各种各样真实的物理运动。
愤怒的小鸟游戏的视角是横向版本的水平视角。
背景是为了报复偷鸡蛋的猪,鸟将自己的身体作为武器,就像炮弹一样从弹弓上发射而出,撞向绿猪搭建的堡垒,以达到摧毁绿猪的目的。
游戏非常简单,小鸟跳上弹弓,发射角度和强度的改变导致小鸟的落点的不同,玩家需要良好的整体计算,适当的调节强度和角度,从而更准确地击中绿猪。
每次击中绿猪,便可获得一定的分数,积累足够的分数便可以通关,游戏设计的体现了放松的情调,乐观的风格。
本文将介绍使用Java语言实现经典的益智类游戏作品“愤怒的小鸟”的开发。
游戏将主要实现以下几个功能:
游戏玩法功能、页面管理功能、难度和级别功能、碰撞功能、鸟类管理功能、玩家管理功能和备份功能等。
此游戏不仅可以给玩家带来欢乐,也会使玩家对开发游戏产生极大地兴趣,让玩家切身体会到Java语言在生活方面的无处不在。
关键词Java;C++;Jbox2D;物理运动;愤怒的小鸟
ii
DesignandimplementationofangrybirdsgamebasedonJava
Abstract
Javalanguageisanobject-orientedprogramminglanguage,itnotonlydrawstheessenceoftheC++language,butalsoabandonedtheC++languageobscuremulti-inheritanceandpointerconcepts,sotheJavalanguagehasthefollowingcharacteristics:
Superandeasytousepractical.
Jbox2Dnotonlyintegratesalargenumberofphysicalkinematicsandmechanicalkinematicscalculations,butalsothephysicalsimulationpackageintotheclassobject,whiletheobjectisalsousedinthedeveloperanduserinterface.Soweonlyneedtocalltheobjectorusetheappropriatefunction,youcansimulatereallifeinthespeed,acceleration,parabolicmovement,gravity,collision,reboundandotherrealphysicalmovement.
Thetypeofgameishorizontalhorizontalviewoftheversion.Thebackgroundistoretaliatetostealtheeggsofthepig,thebirdswillbetheirownbodyasaweapon,likeshellsfromtheslingshotthrownintothegreenpigfortress.Thegameisverysimple,thebirdsontheslingshot,theangleofthepop-upandstrengthbytheplayer'sfingercontrol,payattentiontoagoodoverallcalculation,theappropriateadjustmentofstrengthandangle,andthusmoreaccuratelyhitthepig.Eachtimehitmoregreenpigs,willgetalotofscores,thegamestyleisfulloffunandhumor,thegamedesignreflectstherelaxedatmosphere,optimisticstyle.
ThisarticlewillintroducetheuseofJavalanguagetoachievetheclassicpuzzlegame"angrybird"development.Thegamewillmainlyachievethefollowingfunctions:
gameplayfunction,pagemanagementfunctions,difficultyandlevelfunction,collisionfunction,birdmanagementfunction,playermanagementfunctionandbackupfunction.Thisprogramisintendedtostimulatetheuseofthegametostimulatetheuseofplayersandlearninginterest,sothatplayersexperiencetheJavalanguageinthelifeofcountless.
Keywords:
Java;C++;Jbox2D;Physicalmovement;angrybirds
目录
摘要 i
Abstract ii
1绪论 1
1.1游戏开发的背景 1
1.2典型的Java游戏介绍 1
1.2.1Minecraft介绍 1
1.2.2SuperMarioBros介绍 2
1.2.3TheSims介绍 3
1.3游戏开发的意义 3
2开发环境 4
2.1开发语言 4
2.2开发工具 5
2.3JDK介绍 5
2.4JavaAwt介绍 6
2.5JavaSwing介绍 7
2.6Java语言开发平台搭建 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
1绪论
1.1游戏开发的背景
游戏如今已经成为人们生活中不可或缺的一部分,无论是处于童趣中的小孩、还是繁忙工作中的成人,游戏无疑在每一个人生活中起着非常重要的调剂作用。
不管是实体玩具还是如今的电子游戏,它们都能给我们留下很多美好的回忆。
本人对Java语言有很大的兴趣爱好,大学期间便对其一直进行学习,而且游戏的制作同时也是我非常感兴趣的一个方面,在此之前也进行过一些小游戏的开发。
经此次毕业设计机会,使得我想在专业导师的指导下通过这次毕业设计,来提高自己的Java语言水平,为以后的工作打下坚实的语言基础。
游戏名称是“愤怒的小鸟”,英文称为“AngryBird”。
“愤怒的小鸟”是著名游戏公司Rovio偶然间开发出来的益智游戏,从2009年12月上市到iOS。
,讲述了鸟类和猪因为猪偷鸟蛋反生的一系列故事。
游戏的类型版本是横向版本的水平视角,背景是为了报复偷鸡蛋的猪,鸟将自己的身体作为武器,就像炮弹一样从弹弓射出抛到绿猪搭建的堡垒,并将其摧毁。
游戏非常简单,小鸟跳上弹弓,发射角度和强度由玩家的自行控制,游戏中需要良好的整体计算,适当的调节强度和角度,从而更精确地击中猪。
每次击中更多的绿猪,将获得大量的分数。
游戏风格充满乐趣和幽默,游戏设计的体现了放松的情调,乐观的风格。
愤怒的小鸟这款游戏内容包含着丰富的人机交互:
不管游戏本身设计的难度如何,
只要玩家学会基本的游戏使用方法,大多数人都可以经过不断训练来打到通关这一目的。
这一款益智类游戏的开发,目的是为了使人们更多了解物理引擎游戏所带来的与众不同。
在今天如此复杂多样的游戏环境中,这一款游戏所带来的新鲜感让人为之疯狂,极大展现了Java语言在开发物理运动游戏方面独有的魅力,也极大促进了Java语言在游戏方面的发展。
1.2典型的Java游戏介绍
1.2.1Minecraft介绍
Minecraft是近乎是沙盒游戏的鼻祖,是由瑞典MojangAB公司和4JStudios联合开发,发行于2009年,最后在2014年冬季被microsoft以25亿美金收购。
74
图1-1minecraft
1.2.2SuperMarioBros介绍
SuperMarioBros是任天堂游戏公司开发的,相信我们小时候都玩过这一款游戏,它几乎是所有红白机游戏中最畅销的一款,游戏风格是横版过关类型,这个游戏几乎移植到了所有已知的游戏平台,为游戏爱好者广泛而知。
图1-2SuperMarioBros
1.2.3TheSims介绍
这是一款由ElectronicArts,简称EA开发的以模拟一个人生活中各种事情为主的模拟养成类游戏,。
在这个模拟的世界中,玩家可以操作游戏人物进行近乎于现实生活的行动,仿造真实的情境,控制生理和精神的需求。
图1-3TheSims
1.3游戏开发的意义
随着计算机科学的发展,游戏的发展已经取得非常显著的成果。
图形计算、应用数学、数据结构、算法设计,甚至网络安全都已经应用在强大的游戏引擎中,而且由于快速做出原型是游戏开发的重要组成部分,所以应该学习如何高效率编写可重用的代码是一个很值得关注的问题。
即使游戏没有为他人做出贡献,但至少它给了我很多的灵感,让我认识到作为一个程序员的兴趣所在,我可以继续为未来所需的知识量而努力。
况且,游戏已经影响到人类生活的方方面面,成为生活不可或缺的一部分。
甚至来说,游戏作为一种产业,已经跻身到互联网这个巨大的利益链的前列。
目前,中国的游戏产业已然成为一个新的经济增长,极大地刺激了中国经济的发展,成为了中国六大支柱产业之一。
游戏的发展不仅带来了经济的利益,同时也极大地丰富了人类的生活,增强人们的幸福感,但游戏也存在不可避免的弊端,所以积极宣传中国传统文化,引导青少年健康游戏、快乐游戏应该是,每个游戏工作者的责任和义务。
2开发环境
2.1开发语言
Java语言是一种面向对象的编程语言,它不仅拥有着C++语言的长处,而且也将C++中的多重继承和指针等概念进行摒弃,Java语言不仅具有易用实用的特征,同时也是一种功能强大的编程语言。
Java语言的特征大致可以分为以下一些:
简单性、面向对象、分布式开发、稳健性、安全性、平台独立性、可移植性和多线程以及动态特性。
这些特性以及Java语言本身的强大,是Java语言得以风靡全球的根本原因。
Java语言从外部看起来确实很像C++语言,但是为了使Java语言不那么晦涩难懂和难于学习,开发设计人员将很多原本用于C++语言的功能进行选择性删除。
比如:
Java语言将重载和多个继承功能中的重载运算符排除在外,并且去除主文件,从而消除了预处理器。
再由于Java语言准确的是没有结构的,并且字符串数组是对象,所以指针存在也是不必要的。
去除C++语言的糟粕后,Java语言可以自动管理参考对象和间接引用、自动垃圾收集,这些功能都可由使用户不必担心内存管理问题,从在将更多的时间和精力投入到研发开发当中,无疑是大大提升了编程开发效率。
如图2-1为Java语言总体特点:
图2-1Java语言特点
由于Java语言是面向对象的语言。
所以对于程序员来说,这意味着数据必须在方法中声明和操纵,笼统来说,程序员只需要学习对方法的熟悉和使用,而不是严格的创造方法过程。
Java语言的特点使得语句不单单依赖于实现的方面,这种特殊的特点
使得Java环境本身对新的硬件平台和操作系统是可移植的,并且起重要作用的Java编译器也是用Java语言所编写的,而且还包括用ANSIC语言编写的Java运行时系统。
Java语言旨在适应进化,这说明它是一种动态语言。
由于Java语言的本质,Java游戏不会受到太多来自软件运行平台的诸多限制。
假如我们以Java语言进行开发时,哪怕要重新编译成千上万个类,也只不过是花费很少的时间便可以办到的事情,这是CPP编译速度所无法企及的。
而Java语言语法在一定程度上要比C语言或者C++语言简洁方便很多,开发者只需要掌握一些基本语法,久而久之的学习,绝大多数人都可以使用Java语言轻易地进行开发程序。
本文将以电脑为基础,采用Java语言来编写一款叫做“愤怒的小鸟”的游戏。
2.2开发工具
Eclipse是一个将源代码的开放、基于Java语言的具有可扩展性的编程开发平台。
就其本身而言,它仅仅只有一个框架与一组服务,将其通过插件组件来构建成一个开发环境。
比较需要注意的是,Eclipse还附带着一个标准的插件集,插件集中包含了各种开发工具,比如用于Java语言开发的Java开发工具(JavaDevelopmentKit,JDK)。
Eclipse是著名的跨平台开发环境和自由集成开发环境的组合。
它最初主要是用于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开发项目中,其中包括RedHat和Sybase等公司。
Eclipse本身作为一个开源的项目,它的初衷作为是作为VisualAgeforJava的替代品,所以Eclipse的界面效果与早期版本的VisualAgeforJava相差不大,后来随着开放源代码,任何开发人员不仅可以免费得到Eclipse,而且可以在它的基础上进行各自插件的开发,这一缘由导致Eclipse受到越来越多的人的欢迎。
在此之后还有包括Oracle等在内的
许多软件大公司也先后加入了该项目,使得Eclipse到目前为止已经成为任何语言开发的IDE集成者,也是Java语言开发使用最广泛的平台。
2.3JDK介绍
JDK是Java语言的软件开发工具包(JavaDevelopmentKit),它在java语言开发中占有核心的地位,它包括Java的运行环境,java的基本工具和java的基础库等。
JDK包含的基本组件包括:
javac 编译器:
javac编译器自动读取由java语言编写而成的类和接口的定义等,并将它们编译成字节代码(class文件)。
jar打包工具:
将相关的类文件整合为一个文件javadoc文档生成器:
从源码中将注释提取为一个文档jdbdebugger:
调试工具
jav:
可将编译后的java程序(.class后缀的程序)运行appletviewer:
可在脱机环境的情况下运行applet。
Javah:
创建一个可以被Java程序所调用的C过程的头文件。
Javap:
一种进行反编译的工具。
Jconsole:
Java中可以对系统进行监控和调试的工具。
如下图2-2所示:
图2-2JDK基本组成
2.4JavaAwt介绍
AWT(AbstractWindowToolkit),中文翻译是:
抽象窗口工具包,该包提供了一个GUI交互的接口,Java提供了用于创建和配置JavaGUI的基本工具。
AWT中图形操作函数与系统中图形功能之间提供了一对一的关系,称为peeres,当开发者使用AWT编写图形用户界面时,实际上是使用本地操作系统所提供的图形库。
由于各种操作系统的风格和功能不同,所以提供的图形库不一样,在一个平台上可能存在的功能
反而在另一个平台不存在。
为了实现“写一次(编写一次,任意平台都可以运行”)Java语言的概念,AWT必须以牺牲独立平台功能为代价,由各种系统提供的AWT图形功能的交集来作为awt图形功能的可用功能。
如下图为awt的几种基本布局:
图2-3awt的几种基本布局
AWT在基础组件(components)的GUI应用于提供JavaApplet和JavaApplication。
由于Java是一种独立于平台的编程语言,而是通常将GUI链接到特定
的平台,Java技术允许使用相应的AWT可以提供一个平台接口独立应用于某个机器,这保证了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 愤怒 小鸟 游戏 设计 实现