当前位置: 首页 > news >正文

网站自助建设平台百度wordpress galleria

网站自助建设平台百度,wordpress galleria,山东网站营销优化开发,郑州电力高等专科学校怎么样点击下载源码 基于Java的飞机大战游戏的设计与实现 摘 要 现如今#xff0c;随着智能手机的兴起与普及#xff0c;加上4G#xff08;the 4th Generation mobile communication #xff0c;第四代移动通信技术#xff09;网络的深入#xff0c;越来越多的IT行业开始向手机…点击下载源码 基于Java的飞机大战游戏的设计与实现 摘 要 现如今随着智能手机的兴起与普及加上4Gthe 4th Generation mobile communication 第四代移动通信技术网络的深入越来越多的IT行业开始向手机行业转移重心。而手机行业中游戏方面的利润所占比重较大并且手机游戏大多数则是由Java语言开发研制的。所以我想顺应时代发展用学到的Java知识对游戏进行一次深入的了解与创作。 Java语言在我们大学学习中占了很大的比重其优点甚多面向对象可靠安全多平台可移植高性能多线程等。面向对象是相对于c语言的面向过程来说的在面向对象编程中我们用Java去新建一个对象调用其方法就能实现我们的目标并不需要了解这个对象的方法的具体实现过程Java的可靠安全特点体现Java不支持指针禁止第三方访问杜绝了外部风险。所以使用Java开发游戏是一个正确的选择。 大学学习即将结束在毕业之际我想用我4年里学习的知识为自己编写一个属于自己的游戏——飞机大战游戏为我的大学生活画上圆满的句号。 关键词Java游戏面向对象可靠安全多线程 目 录 1 引言 1 1.1 项目背景 1 2 国内外研究现状 3 1.3 项目主要工作 4 1.4 本文组织结构 6 2 开发平台与开发技术 71 IntelliJ IDEA简介 7 2. 2 IntelliJ IDEA与Eclipse 、MyEclipse的比较 83 Java 10 3 可行性研究 131 技术可行性 132 经济可行性 133 操作可行性 144 用户使用可行性 145 法律可行性 14 4 需求分析 151 系统需求概述 162 功能模块设计 17 4.2.1 游戏状态控制功能模块 17 4.2.2 游戏难度的调整模块 17 4.2.3 游戏界面绘画功能模块 17 4.2.4 玩家游戏控制功能模块 173 游戏难点分析 18 4.3.1 绘图美化 18 4.3.2 多线程技术的实现 18 4.3.3 防碰撞问题的解决 18 4.3.4 动画的实现 18 5 飞机大战功能实现 19 5.1 模型图 19 5.2 软件功能模块 19 5.3 游戏首页的实现 20 5.3.1 界面实现 20 5.3.2 流程图 21 5.3.3 核心代码 22 5.4 游戏开始模块的实现 24 5.4.1 界面实现 24 5.4.2 流程图 25 5.4.3 核心代码 25 5.5 发射子弹模块的实现 27 5.5.1 界面实现 27 5.5.2 流程图 28 5.5.3 核心代码 29 5.6 积分模块的实现 33 5.6.1 界面的实现 33 5.6.2 核心代码 34 5.7 防碰撞逻辑 37 5.7.1 核心代码 37 5.8 游戏操作的实现 39 5.8.1 核心代码 39 5.9 特殊NPC蜜蜂 41 6 系统测试 42 6.1 测试的定义及其重要性 43 6.1.1 测试的定义 43 6.1.2 测试的重要性 44 6.2 测试方法 46 6.3 测试结果 50 7 结论 51 参考文献 52 致谢 54 外文文献 55 中文翻译 63 1 引言 1.1 项目背景 90后的我们童年最开始接触电子游戏是在游戏厅那时候的飞机大战游戏机前往往人山人海绚丽多彩的画面带感操作让人沉醉不能自拔。再后来珍珠港(Pearl Harbor)虎虎虎(Tora! Tora! Tora!)等空战电影中激烈的空战和飞机在天空中的英姿让我彻底爱上了空战所以毕业设计我选择了与飞机战斗有关——基于Java的飞机大战游戏的设计与实现的毕业设计。 而选基于Java的飞机大战游戏的设计与实现为题是对大学期间学到知识的一次实践运用也是对自己大学四年学习成果的一次检验。 柏拉图“游戏是一切幼子生活和能力跳跃需要而产生的有意识的模拟活动。”亚里士多德给游戏的定义是“游戏是劳作后的休息和消遣本身并带有任何目的性的一种行为活动。”可以说游戏是一种一直存在的社会现象有了人类就有了游戏人类与游戏息息相关。游戏也随着人类的进步有了新的发展。 PC机刚开始普及的时候游戏并不能被广泛接受。最主要的原因就是不能充分发挥PC机的性能即游戏程序不能最大化使用PC机的硬件资源导致PC机的早起游戏画面差操作感僵硬可玩度不高所以不被人们所接受。但是随着切硅的技术的提升导致CPU性能的飞跃及Java语言的开发游戏程序对硬件资源的利用率的提高现在游戏的各个方面都有了质的飞跃。比如20世纪末暴雪公司下的《星际争霸1》掀起全球星际流其操作感和画面打击感及游戏可玩性都有很大的提升。当然除了游戏本身的优秀质量以外可以较广的支持不同的硬件设备的功能也不容忽视高中低端PC机都有不错的流畅度。 而飞机大战类游戏中起步较早的还要数由日本公司Cyber Front研制并发行的雷电系列该系列操作简单节奏明快因此可以说成是飞机大战游戏类的经典之作。该系列下的《雷电3》在2016年中旬从PS2平台移植到PC机平台上后更成为当时风靡一时的游戏。 《雷电3》一共有8个关卡分别是病变的森林玄武岩城市。岩石港湾金色的沙漠原子核工厂小行星带大型宇宙舰和地方总部。雷电3的关卡不多而且流程比较短所以主要还是以刷新分数上限挑战操作极限的目的为主考验玩家的手速和反应能力是一款极为经典的游戏即使过去了十几年《雷电3》仍然广受欢迎各大应用商店的点击下载量还是很高衍生出来的游戏更是数不胜数。 1.2 国内外研究现状 Java语言经过多年的发展已经十分成熟。Java语言称霸企业级应用这门多年的事实证明了这门语言适合开发各种项目。当Java语言的运行效率随着发展再次提升了一大截后Java语言的一系列优势就更加明显的体现出来了比如语言严谨高抽象可读性强等。 对于游戏开发由于涉及到各种复杂的问题情况经常遇到新的问题所以在开发过程中需要进行对代码进行不断的修改添加这就需要可以随时随地的修改代码。而Java具有虚拟机特性Java游戏本身也可以用Java来写例如目前的BeanShellGroovy和其他脚本语言可以很容易地无缝地与Java语言的互动我们可以通过脚本随时对游戏进行添加与删除不必要重新开发某个模块。这是大大方便了Java游戏编程。 在游戏的发展中涉及到了大量的Java技术某些技术现在已经淘汰但是也有些技术一直在使用。如Sun公司较早推出了3D技术-- Java3D是一个高度封装的APIOpenGL和Direct 3D都是基于Java3D的可以说是最有名的3D Java技术;Jogl函数则是opengl接口对Java的实现lwjgl函数light weight Java game library是将游戏图形opengl、音效openal、控制输入集合为一以成为Java界的directx不是direct3d而努力joal函数则是Java对openal的一个绑定是Java音效的一个解决方案jinput函数是Java对非标准输入设备游戏手柄操纵杆的解决方案 Project Wonderland是Sun开发的一个3d虚拟世界构建工具等。 由于VRVirtual Reality虚拟现实的发展对游戏的发展影响巨大。科幻电影小说中的科幻游戏玩法有可能成为现实未来游戏也许不需要鼠标键盘只需要一个类似VRBox的头盔设备即可完成指令的输入与输出。 1.3 项目主要工作 本次项目的题目——基于Java的飞机大战游戏的设计与实现主要目的是实现飞机大战这个游戏。期望结果游戏无BUG现在人们将在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题统称为BUG——漏洞简单易上手老少皆宜让玩家“玩不释手”。 从游戏的玩法来说主要就是我方飞机(Hero airplane)和敌方飞机Enemy airplane的对决首先是游戏的开始界面与结束界面然后就是我方飞机Hero airplane的移动方式鼠标移动或者键盘移动我打算选择鼠标移动因为鼠标移动可以转移到手机上现在大多数手机都没有键盘基本靠手指滑动操作接下来就是我方飞机Hero airplane子弹的生成然后是敌方飞机Enemy airplane的出现坐标的选择然后飞机与子弹防碰撞飞机与飞机的防碰撞最后是我方飞机Hero airplane与敌方飞机Enemy airplane的对战结果。 该游戏要满足以下功能性需求 1游戏状态控制功能 游戏的状态控制包括运行、暂停、恢复及结束游戏首先是游戏的开始页面在游戏正在进行时如果你有其他的事情又不想结束游戏你可以将鼠标移出游戏界面或者鼠标在游戏界面单击即可暂停游戏当你的其他事情解决后你还可以选择恢复游戏继续玩下去当游戏结束时会显示游戏结束界面。 2游戏难度的调整 玩家随着玩游戏的时间的增加敌方飞机的数量会增加出现的频率会有所提高移动速度也会提高。 3游戏界面绘画功能 在右上角显示游戏时间游戏难度于时间成正比即游戏时间越长难度越高玩家游戏得分与我方飞机生命值游戏主屏用来显示玩家对我方飞机Hero airplane的控制与敌方飞机Enemy airplane的出现及移动的显示。 4玩家游戏控制功能 玩家可以通过控制移动鼠标或者键盘来控制友机的移动。 1.4 本文组织结构 本文的组织结构如下 第一部分介绍了本文的国内外背景。 第二部分介绍了开发游戏项目涉及到的软件平台与开发语言。 第三部分介绍了项目的需求分析。 第四部分介绍了项目各个模块的实现。 第五部分介绍了对软件测试的过程及结果找到项目的优缺点。 2 开发平台与开发技术 本章主要介绍软件开发平台如何选择。本软件涉及到的开发平台是IntelliJ IDEA开发技术是Java技术。下面将会介绍一下选择IntelliJ IDEA的理由。 2.1 IntelliJ IDEA简介 IntelliJ IDEA是一个Java的 集成开发环境IDE用于开发各种项目的计算机软件。它是由JetBrains公司原名的IntelliJ开发的个人版被Apache 2授权许可商业版则是作为专业版可以用来进行大型的商业开发。 IntelliJ IDEA的第一个版本发布于2001年1月并且是第一个具有先进的代码导航和一个代码重构的综合能力的Java IDE。 IntelliJ IDEA对于系统的要求微软的Windows 10/8/7 / Vista/ 2003 / XPincl.64位最少1 GB内存2 GB RAM推荐300 MB硬盘空间至少1 GB的高速缓存1024×768的最小屏幕分辨率。 IntelliJ IDEA特点 1.编码提示 IDE可以进行代码提示比如结合上下文对当前代码进行补充代码导航可以快速定义到某个声明过的类代码错误提示对于代码错误的地方进行提示并且提供有效的解决方案。 2.内置工具和整合 IDE提供了构建与打包工具如grunt , bower , gradle , 和 SBT 。它支持各个版本的控制系统如 GIT , Mercurial , Perforce , and SVN 。可以直接从IDE对SQL ServerORACLEPostgreSQL和MySQL数据库进行访问。 3.各种各样的插件系统 IntelliJ IDEA支持插件通过插件可以对IDE添加额外的功能。无论是从IntelliJ IDEA的插件库网站或通过IDE的内置插件都可以进行搜索插件和插件的安装。目前的IntelliJ IDEA个人版则拥有1495个可用的插件其中IDE的旗舰版则拥有1626个可用的内置插件。 2.2 IntelliJ IDEA与Eclipse 的比较 我们大学学习中对于Java的开发工具一般都是选择 EclipseMyEclipse开发工具。Eclipse是Sun公司自己开发的Java开发工具优点在于简洁没有插件用户可以根据自己的需求自己寻找安装合适的插件同时这也是它的缺点没有提供插件某些开发就会让人感觉不方便并且插件都是个人开发并不是适合所有人。MyEclipse则需要收费虽然网上有破解版但是并不提倡支持正版从你我做起它实际上是将eclipse和其他常用插件集成在一起的一个庞大开发工具优势就是常用插件齐全不用自行下载安装当然支持自己扩展劣势就是插件太多导致软件繁重运行时占用系统太多资源当然他是收费的对于学生来说这个是致命的。 IntelliJ IDEA更为优秀的原因是IntelliJ IDEA更为智能更贴合用户。以下进行详细说明。 1.调试 作为调试过程的一部分我们通常希望选中一些表达式来查看它的值。在Eclipse中你需要选择这种表达并且准确选择整个表达式是很重要的否则在Eclipse中无法评估它。在IntelliJ IDEA中你只需按下有关快捷键即可看到表达式的值。 2.自动完成 自动完成功能的好坏是区分任何IDE的标杆。在这方面的感觉的背景下IntelliJ IDEA则有一个定性的优势。IntelliJ IDEA不等待任何按键比如当你输入一个方法函数是它立刻会明白方法函数希望将某个定义过的类作为第二个参数这时会有一个静态变量在类名处呈现可见状态。对于用户来说提供建议和想法是一个的确不错的做法。但是Eclipse做不到Eclipse只能理解你当前输入的字符并不能与前边的联系起来。 3.重构 专业编程人员如果利用IntelliJ IDEA的IDE提供的重构将会事半功倍。所有IDE提供了一个用处非常大的重构。但话又说回来IDEA的重构是非常智能的。它知道你想要什么并提供了大多数情况下适用的不同的建议选项。 如果我们选择一个Java IDE作为开发工具那么IntelliJ IDEA肯定比Eclipse的更好。这不只是一个个人品味的问题。客观来说IDEA的确是第一选择它可以让你快速方便地编写和修改代码建议适当的函数提供适当的方法。它不要求你准确选择表达式但会猜测你想要做什么。 2.3 Java Java是一个通用计算机编程语言是并发的类型面向对象的。它的目的是让应用程序开发者“一次编写到处运行”也就是说Java可以在任何设备上开发也可以在任何装有Java虚拟机JVM设备上运行而无需再次编译。 Java应用程序通常被编译成字节码可以在任何装有Java虚拟机上JVM的计算机体系结构上运行。 截至2016年Java是最流行的编程语言之一特别是对于客户端服务器的Web应用程序有报道称有900万开发者在使用Java语言进行开发。Java是由詹姆斯·高斯林在Sun Microsystems这已经被甲骨文公司收购创造的并于1995年发布作为Sun Microsystems的Java平台的核心组件开发Java语言多从C和C 中语法派生出来的。 最初有Sun公司对参考实现Java的编译器虚拟机和类库下发专用许可证。截至2007年5月按照Java社区进程的规章制度SunRelicensed GNU下大部分的Java技术都在通用公共许可证下。其他人也开发了Java软件替代和实现了Sun公司下的一些技术如GNU Java编译器字节码编译GNU Classpath标准库和IcedTea项目的Web浏览器插件小程序。 目前2016年6月Java的最新版本是第8个版本这是目前Oracle支持免费的唯一版本单早期版本都是由甲骨文等公司在商业基础上的支持的。 詹姆斯·高斯林迈克·谢里登和帕特里克·诺顿启动Java语言项目是在在1991年6月Java最初设计则是用于交互式电视但它相对于在当时的有线数字电视产业过于超前。后来该项目又由名称Green并最终改名的Java从Java咖啡来自爪哇的一种咖啡得名。高斯林设计的Java与C / C 语法风格相似系统和应用程序的程序员会发现二者有很大程度的相似点。 Sun Microsystems公司在1995年发布了第一个公开的实行版本Java 1.0它承诺“一次编写到处运行”WORA。其相当安全并设有配置的安全标准它对网络和文件实行访问限制。主流浏览器很快将Java程序的能力纳入到网页中运行导致Java迅速走红然而大多数是外面的浏览器但是这并不是原来的计划所以在2016年1月甲骨文宣布基于JDK 9 Java运行时环境将不再支持浏览器插件。Java 1.0编译器由亚瑟·范·霍夫重新用Java编写严格遵守Java 1.0语言的规范。Java 2新的版本可以在不同类型的平台搭建不同的配置。 J2EE包括面向企业级应用的技术和通常在服务器环境中运行的API而J2ME对API功能的移动应用进行了优化桌面版改名为J2SE。在2006年出于营销目的将新版本J2分别命名为Java EEJava ME和Java SE。 1997年Sun Microsystems加入ISO/ IEC JTC 1标准组织后来的ECMA国际组织要求Java正式化但它很快就从组织中退出了。但Java仍然是一个事实上的标准控制Java社区的标准。 2006年11月13日Sun在GNU通用公共许可证GPL条款支持下将其Java虚拟机JVM公布于众。 2007年5月8日Sun完成了开源的所有过程在自由软件/开源分发条款下放出了它所有的JVM的核心代码除了从Sun未持有版权的小部分代码。 2010年4月2日詹姆斯·高斯林Java的主要创始人从甲骨文公司辞职。 3 可行性研究 可行性研究顾名思义研究其的可行性。可行性研究是项目开发之前的重要阶段。在软件开发实践中软件开发人员或者用户对市场的了解不充分对技术的掌握不好对进行开发的各项风险评估不足等因素有些问题不能再预期下得到解决造成不可预估的损失为了避免盲目的软件开发和不必要的损失相关人员需要对开发特定软件项目的可行性进行研究结合资金、时间和环境等各方面的制约条件对该软件产品是否能够解决存在的问题是否能够带来预期的效果和价值做出评估。 3.1 技术可行性 现在开发游戏的语言一般都是Java语言为了保证开发出来的游戏可以在手机、Web浏览器、PC客户端等平台使用所以就要求开发语言可以在多平台移植而Java语言刚好符合这个特性。开发工具IntelliJ IDEA可以下载并且可以免费使用Java的编译工具JDK也可以在Sun官网上直接下载安装其过程十分简单。 3.2 经济可行性 配置较低的电脑也能进行Java游戏的开发一台电脑就行开发成本低。由于Java具有跨平台以及一次编译到处运行的特点开发出来的游戏可以放到各大游戏平台上发售玩家可以在电脑浏览器手机等各种平台运行。而且软件维护简单实用性强一次开发使用即可长久使用当软件满足不了用户需求时只需对用户的需求进行添加即可。 3.3 操作可行性 本游戏操作简单在电脑和浏览器上可以用鼠标键盘操作在手机上可以用手触摸屏幕运行。 3.4 用户使用可行性 本软件操作简单对用户的要求不需要多强技术能力。 3.5 法律可行性 信息产业部已将游戏通用引擎研究及示范产品纳入国家“863计划”这是中国首次将游戏技术纳入国家科技计划当中。 4 需求分析 需求分析是对即将开发的系统确定一个完整的准确的要求。需求分析的结果是否完美解决了用户的问题将直接影响到后面的进程并影响到设计结果是否能让用户接受。软件需求分析对软件系统提出了清楚、准确、全面而具体的要求是对软件使用者意图不断进行揭示与准确判断的过程它并不考虑系统的具体实现而是严密地、完整地描述了软件系统应该做些什么的一种过程。 4.1 系统需求概述 飞机大战主要需要我方飞机和敌方飞机还有子弹特殊nPC开始背景结束背景以及背景音乐。我方飞机可以随意移动敌方飞机无规律出现。游戏玩家通过鼠标移动控制飞机移动我方飞机在游戏开始时就一直能发射子弹当我方子弹碰到敌方飞机时敌方飞机消失。当玩家飞机碰到敌方子弹时生命值减一直到玩家飞机生命值为一时游戏结束。 基于Java的飞机大战游戏的设计与实现有以下几个模块 1游戏状态控制功能模块 2游戏难度的调整模块 3游戏界面绘画功能模块 4玩家游戏控制功能模块 4.2 功能模块设计 4.2.1 游戏状态控制功能模块 游戏的状态控制包括运行及结束游戏首先进入游戏的开始页面在游戏进行时玩家必须躲避或者击落敌方飞机玩家飞机的生命值降低为0的时候游戏就会结束弹出游戏结束界面。 4.2.2 游戏难度的调整模块 玩家玩的时间越长游戏的难度越高敌方飞机的数量越多、敌方飞机出现的频率越高玩家保证飞机的存活的难度越高操作难度相应也高。 4.2.3 游戏界面绘画功能模块 左上角会显示玩家飞机当前生命值游戏时间当前分数其他地方用来输出玩家对我方飞机的控制与敌方飞机的动作显示 4.2.4 玩家游戏控制功能模块 玩家可以通过控制鼠标或者键盘来控制方飞机Hero airplane的移动。 4.3 游戏难点分析 4.3.1 绘图美化 清新靓丽的游戏界面将给用户带来愉悦的美感。因此在这个游戏中主要参考原始的游戏画面敌我飞机的形象也应该是美丽的。 4.3.2 多线程技术的实现 应用程序线程机制的基石实现了游戏游戏的刷架的控制装上各种角色的资源和背景如飞机机友的要求以实现整个游戏实现自动控制线程 控制。 4.3.3 防碰撞问题的解决 例如敌方飞机与玩家飞机防碰撞敌方飞机与玩家飞机防碰撞等等。防碰撞检测技术实现在不同情况下有不同的防碰撞检测方法。 4.3.4 动画的实现 用图片的阵列动画切片变换形成。图像阵列千变万化的图像画在画布标使动画这是一个图像的形成阵列。使用切片来实现动画所有的帧都放置在相同的图像中以达到爆炸的效果。
http://www.w-s-a.com/news/384669/

相关文章:

  • wordpress模板建站教程wordpress添加广告位手机自适应
  • h5游戏平台入口优化是什么梗
  • 建设银行对公网站打不开网络推广活动方案主题和思路
  • 茶叶网站开发目的和意义网页设计需要考什么证
  • 高端企业网站建设公司怎么做实用性建设网站都需要哪些
  • 网站备案必须要幕布吗易企秀网站怎么做轮播图
  • 南昌网站排名优化四线城市网站建设方向及营利点
  • 做网站需要钱吗unity 做网站
  • 呼伦贝尔市规划建设局网站wordpress怎么考别人的
  • 免备案自助建站网站成都神速建站
  • 怎样编写app软件快速刷排名seo软件
  • 江苏做家纺的公司网站宣传型企业网站
  • 网站网上商城建设外国一些做环保袋的网站
  • 做空气开关那个网站推广比较好建站技术有哪些
  • 做网站前需要做什么准备wordpress图片云储存
  • 查楼盘剩余房源的网站地方网站推广
  • 农家乐网站建设方案创意平面设计公司简介
  • 信息化建设 网站作用网络营销的形式网站营销
  • 沈阳出名网站潍坊正规建设网站
  • 计算机软件开发需要学什么沈阳网站关键字优化
  • 关于军队建设网站国内最好的wordpress主题
  • 小视频网站如何建设陪诊app开发
  • 英文网站首页优化国外手机网站源码
  • 网站建设公司如何找客户网站建设应该考虑哪些问题
  • 创新的江苏网站建设wordpress用户绑定手机
  • 自己做网赌网站网站设计者
  • 教育培训网站设计辽宁招标工程信息网
  • 韶关网站推广做网站要哪些人员
  • 建设银行网站链接开发公司与物业公司交接清单
  • 网站定位广告企业建网站有这个必要吗