软件专业毕业论文-java游戏开发设计与实现-潜艇大战_第1页
软件专业毕业论文-java游戏开发设计与实现-潜艇大战_第2页
软件专业毕业论文-java游戏开发设计与实现-潜艇大战_第3页
软件专业毕业论文-java游戏开发设计与实现-潜艇大战_第4页
软件专业毕业论文-java游戏开发设计与实现-潜艇大战_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常州工学院学士学位设计PAGE4目录一、项目设计任务 31.1设计目标 31.2设计背景 31.3设计内容 3二、项目设计思路 42.1项目类的创建 4三、项目设计与说明 53.1素材整理修改与设计 53.2模型图 5四、项目设计成果 64.1进入游戏: 64.2游戏主窗体: 74.3开始游戏 94.4关于游戏 11结束语 13致谢 14参考文献 14Java游戏开发设计与实现-潜艇大战一、项目设计任务1.1设计目标潜艇大战游戏软件是一个能够实现游戏的运行、暂停、继续、查看比分的游戏系统,通过玩家控制自己的潜水艇与敌方作战,从中得到激情与喜悦。本系统主要是完成潜艇大战的基本操作。用户可以自主练习和娱乐。利用方向键来改变军舰的运动方向;空格键发射导弹,击中敌人得分,击中自己人扣分。随机产生敌舰与发射炮弹。1.2设计背景随着经济的发展和社会节奏加快,科技水平在高速发展,国民生活水平越来越好,人们的需求不断提高,面对的生活压力越来越大,需要更多的娱乐方式来释放自己的压力,提升自己的娱乐兴趣,电脑游戏成为当今社会主流。电脑是人们日常生活中所用的非常频繁的通信工具,正是由于电脑的高普及率,使互联网才得以迅速普及和发展,休闲小游戏则每个人都随时,随地的使用。尽管每个小游戏看起来很简单,但每一种设计理念都是从玩家的角度来考虑,简洁,方便。然而我们所设计的这款小游戏,能够适用于广大群众,只要身边有电脑,就能随时随地,无需网络,即可享受“潜艇大战”带来的超凡体验,达到休闲、释放压力的效果。因此,这款休闲小游戏会深受人们喜欢。1.3设计内容(1)进入游戏此游戏分敌方潜艇(若干)和我方潜艇两个角色,界面是一个窗口,游戏在此窗口上进行。敌方潜艇在水下攻击我方潜艇,(2)游戏界面进入游戏后,有两个按钮(菜单、帮助),菜单下有三个子菜单(开始、暂停、退出),帮助菜单下有两个子菜单(关于我们、游戏规则)。(3)我方军舰军舰弹药有一定的限制,最多只能携带五个,有冷却时间,不为无限制发射。避开边界利用左右键可以移动,当触动空格键,我方潜艇可以发弹,发弹的距离和方向随着舰艇移动的方向改变,垂直向下运动。(4)敌方潜艇敌方潜艇无数目限制,随机出现,发射的弹药也是随机发射。敌方潜艇可以被我方潜艇击中、呈现出爆炸,酷炫效果。(5)游戏得分我方潜艇每击中一艘敌方舰艇,加十分,上面的得分随之变化。二、项目设计思路开始游戏开始游戏进入游戏主界面进入游戏主界面点击菜单选项点击菜单选项暂停开始退出暂停开始退出由由MainPanel等类来绘制主界面控制船只对象控制船只对象产生水雷产生水雷游戏开始且判断潜艇是否被击中游戏开始且判断潜艇是否被击中产生爆炸效果产生爆炸效果2.1项目类的创建第一创建SubmarineWar第二在src中创建src\com,添加各个功能实现类第三创建游戏界面分布类MainPanel、javaMyFrame,javaMyPanel.java等界面第四创建游戏潜艇和船对象类,创建炮弹效果类第五创建具体游戏类第六创建接口类三、项目设计与说明3.1素材整理修改与设计素材收集:首先把素材分类,规范命名项目中所有可能用到文件夹,以便于项目整体的开发进度。具体有以下方面:游戏主界面菜单使用的图片。游戏中炸弹以及各种潜艇的图片。游戏结束结算界面的图片。素材的设计:把收集到的素材进行如下处理把素材进行上色,潜艇模型的大小以及基本形状。炸弹效果以及潜艇爆炸效果进行渲染。修改鱼雷的大小,形状。游戏主界面结算界面进行修改。3.2模型图(1)主界面部分潜艇模型爆炸效果图(4)鱼雷四、项目设计成果4.1进入游戏:publicclassMainPanelextendsJPanel{ privatestaticfinallongserialVersionUID=1L;publicMainPanel(Observableob) { obs=ob; startButton=newMyButton("进入游戏"); exitButton=newMyButton("退出游戏"); helpLabel=newJLabel(); helpLabel1=newJLabel(); helpLabel2=newJLabel(); helpLabel3=newJLabel(); centerlabel=newJLabel();this.setLayout(newBorderLayout()); this.centerlabel.setBackground(newColor(255,255,0));image=Toolkit.getDefaultToolkit().getImage("imgs/主界面112.jpg"); this.startButton.addActionListener( newActionListener() { publicvoidactionPerformed(ActionEvente) { booleanflag=true; MainPanel.this.setIsStart(flag); MainPanel.this.obs.notifyObservers(MainPanel.this); } }4.2游戏主窗体:packagecom.stj.views;importjavax.swing.*;publicclassMyFrameextendsJFrameimplementsObserver{ privatestaticfinallongserialVersionUID=1L; privateMyPanelpanel;//游戏界面 privateMainPanelmainpanel;//开始界面 privateJMenuBarbar;//菜单栏 privateJMenumenu1;//菜单1,2 privateJMenumenu2; protectedbooleanisStart; protectedbooleanisExit; privateJMenuItemitem1;//菜单项1,2,3,4,5 privateJMenuItemitem2; privateJMenuItemitem3; privateJMenuItemitem4; privateJMenuItemitem5; publicMyFrame(Observableob) { ob.addObserver(this); Observableobs=ob; this.panel=newMyPanel(); this.mainpanel=newMainPanel(obs); this.isStart=mainpanel.getIsStart(); this.isExit=mainpanel.isExit(); } publicvoidshowMyFrame() { Containerc=this.getContentPane(); c.setLayout(newBorderLayout()); this.bar=newJMenuBar(); this.menu1=newJMenu("菜单"); this.menu2=newJMenu("帮助"); this.item1=newJMenuItem("开始"); this.item2=newJMenuItem("暂停"); this.item3=newJMenuItem("退出"); this.item4=newJMenuItem("关于我们"); this.item5=newJMenuItem("游戏规则"); this.menu1.add(item1); this.menu1.add(item2); this.menu1.add(item3); this.menu2.add(item4); this.menu2.add(item5); bar.add(menu1); bar.add(menu2); this.bar.setVisible(false); this.setJMenuBar(this.bar); item1.addActionListener(newActionListener() }4.3开始游戏:publicclassHitimplementsRunnable{ privateMyPanelpanel;//主面板 privateImageimage;//图片 privateintliveTime=500;//爆炸效果显示的时间默认为500毫秒 privateintbeginX=0;//位置xy privateintbeginY=0; privatebooleanisRunning=false;//游戏是否正在运行标志 publicHit(intx,inty,MyPanelpanel) { this.beginX=x; this.beginY=y; this.panel=panel; this.image=Toolkit.getDefaultToolkit().getImage("imgs/炸弹效果.gif"); this.image=newImageIcon(this.image).getImage(); } publicvoiddrawHitting(Graphics2Dg) { g.drawImage(this.image,this.beginX,this.beginY,this.panel); } publicvoidrun() { while(!this.isRunning) { try{ Thread.sleep(this.liveTime); }catch(InterruptedExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } this.isRunning=true; } } publicbooleanisRunning(){ returnisRunning; } publicvoidsetRunning(booleanisRunning){ this.isRunning=isRunning; }}4.4关于游戏:publicvoidpaint(Graphicsg) { super.paint(g); Graphics2Dg2=(Graphics2D)g; //g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); Point2Dstart=newPoint2D.Float(this.getWidth()/2,0); Point2Dend=newPoint2D.Float(this.getWidth()/2,this.getHeight()); float[]dist={0.05f,1.0f}; Color[]colors={newColor(58,95,205),Color.CYAN}; LinearGradientPaintp= newLinearGradientPaint(start,end,dist,colors); g2.setPaint(p); g2.fillRect(0,0,this.getWidth(),this.getHeight()); Stringtitle=newString("关于我们"); g2.setFont(newFont("楷体",Font.BOLD,25)); g2.setColor(Color.yellow); BasicGraphicsUtils.drawString(g2,title,100,90,50); Stringcontext=newString("本游戏为Java编写"); g2.setFont(newFont("楷体",Font.BOLD,15)); g2.setColor(Color.yellow); BasicGraphicsUtils.drawString(g2,context,100,35,80); Stringcontext1=newString("模拟的休闲小游戏《潜艇大战》"); g2.setFont(newFont("楷体",Font.BOLD,15)); g2.setColor(Color.yellow); BasicGraphicsUtils.drawString(g2,context1,100,35,100); Stringcontext2=newString("小组开发人员:"); g2.setFont(newFont("楷体",Font.BOLD,15)); g2.setColor(Color.yellow); BasicGraphicsUtils.drawString(g2,context2,100,35,120); Stringcontext3=newString("唐冬成,李海峰,石亮"); g2.setFont(newFont("楷体",Font.BOLD,15)); g2.setColor(Color.yellow); BasicGraphicsUtils.drawString(g2,context3,100,35,140); Stringcontext4=newString("联系qq:912595671"); g2.setFont(newFont("楷体",Font.BOLD,15)); g2.setColor(Color.yellow); BasicGraphicsUtils.drawString(g2,context4,100,35,160); this.repaintShape(); }结束语在这次的毕业设计中,毕业设计也接近了尾声。经过几周的奋战我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论