面向对象课程的设计潜艇大作战小游戏.docxVIP

面向对象课程的设计潜艇大作战小游戏.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象课程的设计潜艇大作战小游戏

1.需求分析1.1需求分析:本程序的要求为使用Java建立一个小游戏程序中用到Java课程中的重点知识1.2功能设计本游戏的功能有以下几个方面:首先绘制一个首页,首页包括开始、退出按钮,采用事件监听。进入游戏后使用,通过读取文件,读出以前的最好成绩,使用菜单按钮开始游戏通过方向键来控制潜艇的移动方向,空格键释放鱼雷击中敌人后加分,同时被敌人击中一次就扣除一次机会,共3次机会2.概要设计2.1程序设计思路此游戏的关键点是潜艇是否被击中的判断,整个屏幕是个二维坐标系,军舰在一个水平位置移动,当在某个位置发射鱼雷,判断鱼雷的图片与不断移动的潜艇图片是否有重合的地方,如果有发生爆炸,如果没有继续移动。2.2程序运行界面2.3流程图本游戏的基本运行流程是启动后把整个画布作为一个线程,随时准备响应用户按键操作的K响应,100ms扫描一次潜艇和水雷等物体的运行状态。在扫描潜艇和水雷运动时,执行各个物体画面的移动方法。程序并不为每隔新增潜艇和水雷开启一个新线程,太多线程会造成程序的性能直线下降;而是将每一个物体类型直接加入到画布中,每当一个新物体产生,将直接在画布上画出;当物体消除时,将直接在画布上被消除。这样就形成一种注册机制,所有游戏物体的产生和消除都需要画布注册,画布拥有不同类型物体的所有“名单”,所以,当执行移动命令是只需要遍历画布中所有游戏物体,依次执行每隔游戏物体中定义的移动方法即可。?3.各模块的功能及程序说明3.1主界面代码主界面设计是使用坐标系,具体实现图如下:publicclass MainPanel extends JPanel {privatestaticfinallongserialVersionUID = 1L;private MyButton startButton;private MyButton exitButton;private JLabel helpLabel;private JLabel helpLabel1;private JLabel helpLabel2;private JLabel helpLabel3;private Image image;private JLabel centerlabel;privatebooleanisStart;privatebooleanisExit;private Observable obs;public MainPanel(Observable ob){obs = ob;//初始化对象startButton = new MyButton(进入游戏);exitButton = new MyButton(退出游戏);helpLabel = new JLabel();helpLabel1 = new JLabel();helpLabel2 = new JLabel();helpLabel3 = new JLabel();centerlabel = new JLabel();this.setLayout(new BorderLayout());this.helpLabel.setPreferredSize(new Dimension(645,291));this.helpLabel1.setPreferredSize(new Dimension(180,80));this.helpLabel2.setPreferredSize(new Dimension(215,80));this.helpLabel3.setPreferredSize(new Dimension(645,80));this.centerlabel.setPreferredSize(new Dimension(460,80));centerlabel.setLayout(new GridLayout(2,1));centerlabel.add(this.startButton);centerlabel.add(this.exitButton);this.centerlabel.setBackground(new Color(255,255,0));this.add(helpLabel,BorderLayout.NORTH);this.add(helpLabel1,BorderLayout.EAST);this.add(helpLabel2,BorderLayout.WEST);this.add(helpLabel3,BorderLayout.SOUTH);this.add(centerlabel,BorderLayout.CENTER);//类中声明了游戏中需要的各种对象,并载入游戏中的图片image = Toolkit.getDefaultToolkit().getImage(

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档