




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要:小巧简单的小游戏深受人们喜爱,如扫雷、纸牌等经典游戏长期深受用户的喜爱。此类休闲小游戏可以在娱乐的同时调节游戏爱好者的身心健康。为此,将经典的坦克大战小游戏进行优化。如增设了部分关卡,调整了攻击参数,优化了部分参数,设置几种关卡供使用者靠近,使用多线程增加了对抗的难度等。系统包括游戏开始、关卡选择、运行选择等几个功能模块,每个模块在原有基础上进行了化化与升级。经升级后的小游戏运行流畅、视觉冲击感强、用户体验度好。经游戏爱好者实测,优化后的小游戏易于上手,娱乐性与趣味性增加。关键词:面向对象坦克大战游戏J2SE1绪论1.1选题的目的和意义P城市现代化的快节奏生活,使得现代人的压力增长迅速。而长期的工作或学习压力往往使得人们身习疲惫,需要一种方式来释放自我的负面情绪或压力,而游戏往往是最佳的选择之一。游戏的种类很多,比如角色扮演类、射击类、策略类、益智类或敏捷类等等,每种游戏都有自己的特点,可以实现相关的功能。以益智为主题的游戏可以锻炼用户的逻辑思维;以策略为主题的游戏可以促进游戏爱好者的智力发展;以敏捷为主题的游戏可以提升游戏玩家的敏捷能力。经典的小游戏长盛不衰,比如windows自带的纸牌类游戏、扫雷游戏,自出现到如今,依然是电脑爱好者的首选游戏。各个大学计算机实验室,大一新生学习之余往往打开纸牌或扫雷,调节一下情绪,缓解一下压力。马里奥游戏历经几十发展,依然是年青一代游戏爱好者的选择之一。经典的飞机大战、太空翱翔等射击类游戏也是年青一代游戏爱好者选择的选择之一。另一款经典游戏坦克大战自70年代出品以来,历经各种机型或版本的变化,现今已然是游戏界的坚挺游戏之一。其以敏捷类为主题,在缓解游戏爱好者压力的同时还能提升玩家的电脑使用熟练程度、运动的敏捷以及思绪的快速反映,对游戏爱好者来讲,是一款不错的游戏选择。然而,传统的坦克大战小游戏也存在着多多少少不尽人意之处。比如在关卡方面选择度较小,玩家很容易通关。在对战坦克方面,系统随机出现的坦克数量较少,玩家很容易完成攻击;在攻击对象方面,也有待优化,比如对象较单一等等。针对这些方面,拟打算对经典坦克大战游戏进行优化。如增设了部分关卡,调整了攻击参数,优化了部分参数,设置几种关卡供使用者靠近,使用多线程增加了对抗的难度等。系统包括游戏开始、关卡选择、运行选择等几个功能模块,每个模块在原有基础上进行了化化与升级。经升级后的小游戏运行流畅、视觉冲击感强、用户体验度好。经游戏爱好者实测,优化后的小游戏易于上手,娱乐性与趣味性增加。1.2系统的优点(1)游戏内容上的优点:坦克大战游戏的设计内容没有其他游戏那么复杂,也没有枯燥而乏味地一直做任务。(4)技术上的优点:使用了多线程的概念,增加了对抗地难度。系统把线程分配给敌方的二十辆坦克,使其能够单独运转。(5)风格上的优点:采用的是军事化的元素,使界面更加独特。1.3论文组织结构为了介绍坦克大战游戏系统的设计与开发,一共分为五大方面来阐述每一阶段的工作,从第二章具体布局如下:在第二章中,对开发工具及系统的架构进行简单介绍,开发工具是eclipse,架构是j2se平台,并对各个部分进行简要概述。在第三章中,进行可行性分析,对系统的游戏进行分析,并规则和功能进行简要介绍。在第四章中,进行总体设计,将坦克大战游戏系统分为开始和退出、暂停和继续、游戏级别、帮助四个模块。同时设计功能模块,分为堡垒,坦克,墙,森林,爆炸模块,并对各模块进行简要介绍。在第五章中,展示了系统的具体是怎么实现的,并对功能进行详细介绍。2开发工具及系统架构简介2.1开发技术概述java编程java开发语言非常类似c编程语言和c++编程语言。java的编程开发语言是单纯的面向对象的,它的中心就是保留了c++语言的面向对象的特点。java换掉了c编程语言里易于造成缺口的指针、重载运算符、多重继承等等性能。加入收回垃圾器性能来接收不能够被引用而浪费的存储单元,让设计开发的工作者不必由于存储空间大小感到心烦。java发展到目前为止,对比其他的语言来说,属于成熟语言。它的优点是易于开发,但其操作效率不如C/C++。假设对平台没有过高的要求的话,就可以使用java。java与传统的编译型运用编程语言和解释型运用编程语言,它属于一边进行编译一边又解释运行的半编译半解释型。它第一步把源代码翻为字节代码,第二步把代码利用虚拟机编译代码。java目前最多的项目就是web设计,包括各种网站平台的游戏,运用十分广泛。c编程c语言是电脑开发编程,它有两个语言上的优势,一个是语言高级,另一个就是汇编语言。在19世纪70年代末,不管电脑的体积是大还是小,c编程都能在电脑上运行。c语言于java不同,是面向过程的语言。所以实际上java的开发效率高,c的运行效率高。由于c是基本的语言,对比java更适应计算机。很多软件设计都是使用c,例如xp操作平台,linux操作平台。c++编程c++是c的升级版,结合了java的特点面向对象和c的特点面向过程。所以c++的优点是尽可能地与c相容和面向对象。c++具有c的简单高效的语言特点,并且从c的身上汲取经验,实行优化。所以c++相较于c来说更加具有说服力,并且c++的编程平台可以检测很多种错误。因为c是基本的语言,被人们普遍运用,所以也推动了c++的发展。但是c++编程语言十分繁复,很多人甚至看不懂是什么意思。C++的操作平台由于其编程语言的难以理解导致运行起来也不简单。2.2编程语言简介java是一种能够面向对象的编程语言,它本身具备的跨平台的优点深受开发者的欢迎。它分为javase,javaee,javame三个版本。java具备灵活性,还有可移植性和安全性,而且开发效率高。技术开发人员也在使用这门语言,把java技术广泛应用于个体计算机上。java平台由java的虚拟机和java应用编程接口(api)两者一起组成。java平台被装置在操作平台上后,就可以运用java语言来实现编程。如今在很多应用程序里面都在使用java平台。2.3j2se平台简介由于java编程方向的不同,一共划分成3个样式,即j2se(标准化),j2ee(企业化),j2me(微缩化)。j2se涵盖的各种组件,性能体系构造和技术级别,具备通用的规范和原则,因此在j2se体系结构的多个平台之间具有良好的兼容性。它解决了因公司后台运用的技术互相之间不兼容,而使公司内部和外部交流变得困难的难题。j2se的体系构造,设计工作人员根据规定的标准,来使用设计开发的编程。而且不同的j2se开发商,都会遵守各种j2se中设定的开发规范,用来保证j2se系统和产品彼此双方的相容性。换句话说,基于j2se体系构造的编程,能够在独立的编程服务器中完成,而且只需要使一小部分的代码发生变化,就能够大大增强使用编程平台的可移植性。2.4MyEclipse软件简介以java语言为基底的Eclipse,是一个源代码开放的软件开发操作平台。它自身就是一个框架与服务平台,利用插件来组成开发的内容,各种插件都被包含在Eclipse中。这个软件的最显著的特点是:只需要安装并且下载作用不同的插件,就能够进行风格不一的编程设计。Eclipse能够促进项目的设计进程,是因为它只是作为代码编程的普通代码编辑器,它还具有自己主动找到错误并且及时纠正错误的重要性能。3系统分析3.1可行性分析(1)游戏程序由于它的代码重复率大,所以需要高精度的软件编程。被设计开发出来的完整项目,其工作的每秒将运转千百行代码。所以,项目的逻辑设计一定要十分严谨,并且在设计过程中必须想出所有将要发生的事情和偶然的状况。(2)游戏开发的时候要导入图像,达到美观的效果,增强视觉冲击感。(3)用户通过按键来管控坦克上下左右的操作,但是由于敌人会自动移动,就得使敌方坦克具有一定的智能性。所以,系统运用多线程的技术把线程分配给每一辆坦克。坦克受线程的控制,能够自己独立运转。(4)对于敌人坦克发射的子弹的管控同样应该注意,子弹应该位于自己的线程上。敌人的子弹只要求判断玩家的坦克位置,玩家坦克回回都必须要判断全部的敌方坦克在哪里。为此,就需要更好地控制界面上的对象。此外,子弹在发射过程中要判断会不不撞在阻挡物品或界面边界上。同时,在系统上配置的线程过多可能会降低程序运行速度。(5)随着两方坦克的移动,要想一下它们能否会与障碍物或另外的坦克相撞以导致界面上的物体相互叠加在一起,不要导致科学上不现实的情况,使用户缺少了体验感。(6)以虚拟机为基础的半解释形式的java编程平台,运行效率要比所有编译代码平台(如C++)的运行效率低得多。如果程序不经过简化与优化,则系统可能无法顺利运行。3.2游戏规则和系统功能介绍 在游戏中,坦克能够在四个方向上走动。运行过程中,坦克有可能与其他坦克发生碰撞,但它们不会叠加在一起。坦克可以朝四个方位射出子弹,射出的子弹攻击坦克使坦克爆炸。在游戏里面有阻挡物品,坦克以及子弹不可以越过阻挡物品,如果不小心让敌人的子弹命中,则血条值就会减小,假设最后血条值是0的话,则坦克一定会爆炸,按F启动一个新坦克游戏界面,随机的红心可以增强血条值。游戏的胜利是坦克来击败敌方坦克,而且当二十辆敌方坦克都被击败时,游戏完结。坦克大战这款一对多的游戏模式,归根结底是用户操控自己的坦克来攻击仇敌的坦克。这款游戏的大致性能有,坦克能够在界面的各个地方移动,而且还可以朝仇敌射出子弹,来攻击对方,仇敌的坦克可以四个目标方位随机走动。假设攻击到了对方的坦克的话,那么对方的坦克就会发生黄色的爆炸。假设自己的坦克被仇敌的坦克攻击,就会降低血条值,但是吃掉红心的话,就会增加自己的血条值,继续攻击对方。用户的坦克和对方的坦克不能重复在一起,玩家的坦克在走到游戏界面的边缘的时候,就不会再继续前进了。安放阻挡的物品,并且坦克不能越过阻挡的物品。3.3程序运行表 表3.3坦克大战信息表字段名数据类型长度说明tank行速int100speedtank宽度int100widthtank高度int50heightTank位置int200xy墙int20wall红心int50blood3.4描述坦克运行流程坦克大战游戏运用的是面向对象的设计方式,系统把对象分配给游戏里的一切元素。游戏开始时玩家单击菜单选项,也可以重置游戏界面。玩家管控的坦克在主线程里操作,跟着界面重置的频率而前行。对方的坦克要在游戏开始的那一刻慢慢添加线程,添加一个坦克便要添加一个线程。如果线程的数量增加到顶峰,便不能容许对方增加坦克。玩家的坦克从游戏开始的时候就被分配一颗子弹,子弹拥有自己的线程。即使如此,如果碰着了障碍物或者是对方的坦克的话,虽然游戏运转失败,但是不会去掉子弹对象,光把它的线程结束。玩家第二回射出的子弹,不过是把结束的线程第二次唤醒。在游戏运行过程中,系统要扫描许多问题。例:玩家坦克的血条值是不是没有了,对方的坦克数量是不是零等等。图3.4坦克运行流程图4系统总体设计4.1总体模块根据对游戏的调查与分析,将坦克大战游戏系统分为开始和退出、暂停和继续、游戏级别、帮助四个模块。坦克大战游戏系统的模块划分如图4-1所示:图4.1游戏总体模块图系统总体模块应具有控制恢复,退出,暂停,帮助等功能,所以需要划分菜单选项。菜单包括恢复,暂停和关闭游戏。上述性能的玩家界面位于TankClient配置方法中,而且运用面板的类方法及其监听性能,所以十分易于完成。4.2游戏组成游戏大致由堡垒、坦克、墙、森林、爆炸五个方面来组成。具体设计情况如下:(1)坦克坦克是用户来操作的。tank属性:行速、tank的尺寸、tank在移动过程中的地址、tank是不是仍在运转以及方位等。坦克前进的目标,子弹的射出和游戏的开始皆由键盘响应。当坦克撞到墙壁,边界,堡垒和其他障碍物时,必须要改变方向,因此有必要针对坦克中的每个障碍物进行研究。(2)堡垒堡垒的详细属性是堡垒的大小、堡垒的地址以及堡垒的方位。坦克射出子弹,保护好自己的堡垒的同时,要求击败对方的坦克才能赢取胜利。就像森林和坦克一样,堡垒也有它们本身的结构模块。因为游戏可以重新开始,系统必须需要不时地进行判断堡垒的当前状况。游戏界面的结尾还包括清屏操作。(3)墙该墙分为基础墙和铁墙。子弹会损坏基础墙,但不会损坏铁墙。(4)森林森林主要是用于装饰的,它是不透明的。森林具有两个属性:位置、长宽。(5)爆炸坦克爆炸的影响针对每个类别进行了独立描述。爆炸的性质:地址和生存形态。再一个,游戏界面出现爆炸效果的时候是受玩家控制的。河流、树木、房屋、墙壁等,它们是通过自己类中调用draw函数进行绘制的,最后,创建一个新的图形板,并将所有元素添加到该板中。构造接口时,通过接口实例对象的add方法添加接口的元素,并且必须不断更新和重绘移动的元素。5游戏的具体实现5.1功能(1)菜单项功能用户点击菜单选项来开始、结束、暂停、继续以及运用帮助性能来建造新游戏。系统将询问用户是否要继续使用两个功能,即开始和结束新游戏。新游戏功能:在此模块中实现游戏的性能的核心代码如下所示。publicTankClient() jmb=newMenuBar(); jm1=newMenu("游戏"); jm2=newMenu("暂停/继续"); jm3=newMenu("帮助"); jm4=newMenu("游戏级别");创建一个菜单,然后有游戏暂停继续帮助游戏级别的选项。单击“确定”开始新游戏,然后单击“取消”返回到原始页面。(2)确认是否退出:在此模块中实现是不是要退出的核心代码如下所示。 Object[]options={"确定","取消"};单击确定马上会结束游戏界面,单击“取消”就结束退出此游戏。(3)在子弹击中到对手的坦克后爆炸作用:在这个模块中完成爆炸的核心代码如下所示。for(inti=0;i<bombTanks.size();i++) BombTankbt=bombTanks.get(i); bt.draw(g);红色图像代表了用户击中坦克后发生了爆炸。当子弹撞击基础的墙壁时,墙壁会隐没。(4)子弹击中普通墙:在此模块中实现子弹打中了普通的墙壁的核心代码如下所示。publicbooleanhitWall(CommonWallw) if(this.live&&this.getRect().intersects(w.getRect())){ this.live=false; this.tc.otherWall.remove(w); 图片中带有橙色箭头表示子弹打中了基础墙,墙被毁了。子弹打到普通墙上,就会清除所打中的墙的部分。(5)游戏失败:在此模块中实现游戏输掉跟结束的核心代码如下所示。publicvoidgameOver(Graphicsg)g.drawString("你输了!");g.drawString("游戏结束!");游戏失败后使用gameover()方法完结,该方法将删除界面上的一切东西。(6)重置游戏在此模块中实现R键重置游戏的核心代码如下所示。publicvoidkeyPressed(KeyEvente){ intkey=e.getKeyCode(); switch(key){ caseKeyEvent.VK_R: tc.tanks.clear();先是按下R键,然后清除之前的游戏记录,启动新的游戏页面。(7)坦克撞到边缘在此模块中实现坦克撞到边缘的核心代码如下所示。if(x+Tank.width>TankClient.Fram_width) x=TankClient.Fram_width-Tank.width;坦克撞到边缘的效果,当坦克走到边界时就停滞不前。(8)在用户赢得游戏后:在此模块中实现游戏胜利的核心代码如下所示。this.otherWall.clear();g.drawString("你赢了!");g.setFont(f);先判断是不是赢了游戏,如果是的话界面上就会显示你赢了。结论坦克大战游戏系统是在windows的操作系统下,在MyEclipse上面编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国西餐行业市场深度调研及竞争格局与投资报告
- 2025至2030中国装饰钢材行业发展研究与产业战略规划分析评估报告
- 2025至2030中国蒸汽接头行业市场占有率及投资前景评估规划报告
- 医学毕业生试题带答案
- 2025至2030中国荧光灯泡行业发展趋势分析与未来投资战略咨询研究报告
- 无功电压控制领域的环保理念与实践案例
- 药品调剂试题带答案
- 2025至2030中国舞台窗帘行业市场占有率及投资前景评估规划报告
- 大班健康活动《保护我们的胃》教案与课件设计
- 初中生地球科学知识讲座
- 《混凝土用化学锚栓》
- 师承指导老师学术思想工作总结
- 薄膜温室大棚结构计算书
- 医疗器械知识产权保护指南
- 应急救援与自救技能培训
- 铅锑合金 标准
- 创新方法教程题库题库(449道)
- 液压支架工理论知识考试题库300题(含答案)
- 公司岗位职级管理制度
- 围手术期患者血液管理指南
- 广东省肇庆市2021-2022学年高二数学下学期期末考试试题(附解析)
评论
0/150
提交评论