Java练习_坦克战3.0_线程.docxVIP

  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文档。上传文档
查看更多
Java练习_坦克战3.0_线程

Java练习_坦克大战3.0结构:类:属性:Hero我的坦克Ets敌人坦克数组Ensize敌人坦克数方法:构造敌我坦克Paint(画坦克、画子弹)画出敌我坦克runrepaint监听按键控制方向、移动、发射子弹属性:速度坐标方向颜色方法:构造方法设置坐标设置坐标设置颜色设置方向继承tank属性:子弹方法:发射子弹上下左右移动属性:坐标方向速度生存与否方法构造方法坐标、方向、速度Run根据方向移动子弹、判断子弹是否死亡属性:面板方法:构造方法启动面板加入线程并启动面板加入窗口面板作为监听者监听消息源窗口的事件设置窗口相关项代码:/** * java练习_坦克大战3.0 * 有敌我坦克,我方坦克可以移动,可以发射炮弹 * 引入多线程 * */package TankGame2;//package MyTankGame2;import java.awt.*;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjava.util.*;importjavax.swing.*;publicclassMyTankGame2extendsJFrame{MyPanelmp=null;publicstaticvoid main(String[] args) { MyTankGame2 mytankgame1=newMyTankGame2(); }public MyTankGame2() {mp=newMyPanel();//启动mp线程 Thread t=newThread(mp);t.start();this.add(mp);this.addKeyListener(mp);this.setSize(400,300);this.setVisible(true);this.setDefaultCloseOperation(EXIT_ON_CLOSE); }}classMyPanelextendsJPanelimplementsKeyListener,Runnable{//定义我的坦克,成员变量 Hero hero=null;//定义敌人的坦克组 VectorEnemyTank ets=new VectorEnemyTank();intenSize=3;publicvoid paint (Graphics g) {super.paint(g);g.fillRect(0,0,400,300);//画出自己的坦克this.drawTank(hero.getX(), hero.getY(), g, this.hero.direct, 1);//画出子弹if (hero.s!=nullhero.s.isLive==true) {g.draw3DRect(hero.s.x, hero.s.y, 1, 1, false); }//画出敌人的坦克for(inti=0;iets.size();i++) {this.drawTank(ets.get(i).getX(),ets.get(i).getY(), g,ets.get(i).getDirect(), 0); } }//画出坦克函数(扩展)publicvoiddrawTank(intx,inty,Graphicsg,intdirect,int type) {//判断类型switch (type) {case 0:g.setColor(Color.cyan);break;case 1:g.setColor(Color.yellow);break; }//判断方向switch(direct) {//向上case 0://画出我的坦克(到时候再封装成一个函数)//1.画出左面的矩形//g.drawRect(hero.getX(), hero.getY(), 5, 30); g.fill3DRect(x,y,5,30,false);//2.画出右边的矩形 g.fill3DRect(x+15,y,5,30,false);//3.画出坦克的中间矩形 g.fill3DRect(x+5, y+5, 10, 20,false);//画出中间的圆g.fillOval(x+4, y+10,10,10);//画出线g.drawLine(x+9, y+15, x+9, y);break; case 1://炮筒向右//画出上面的矩形 g.fill3DRect(x,y,30, 5, false); g.fill3DRect(x, y+15, 30, 5, false); g.fill3DRect(x+5, y+5, 20, 10, false);g.fillOval(x+10, y+5,

文档评论(0)

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

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

1亿VIP精品文档

相关文档