文档详情

java坦克大战源码.doc

发布:2018-03-24约1.46万字共18页下载文档
文本预览下载声明
TankClient 类 ( import java.awt.*; import java.awt.event.*; import java.util.List; import java.util.ArrayList; //坦克客户端 public class TankClient extends Frame { public static final int GAME_WIDTH = 800; public static final int GAME_HEIGTH = 600; Tank myTank = new Tank(500,500,true, Tank.Direction.STOP, this);//声明一个自己坦克对象 Wall w1 = new Wall(100,200,20,150,this);//声明两个墙变量 Wall w2 = new Wall(400,300,300,20,this); //Tank enemyTank = new Tank(100,100,false, this);//声明一个敌人坦克对象 //Explode e = new Explode(70, 70, this); ListExplode explodes = new ArrayListExplode(); ListMissile missiles = new ArrayListMissile(); ListTank tanks = new ArrayListTank(); Image offScreenImage = null; Blood b = new Blood(); //画函数 public void paint(Graphics g) { Color c = g.getColor(); g.setColor(Color.BLACK); g.drawString(missiles count:+missiles.size(), 10, 50); g.drawString(explodes count:+explodes.size(), 10, 70); g.drawString(tanks count:+tanks.size(), 10, 90); g.drawString(tanks life:+myTank.getLife(), 10, 110); g.setColor(c); for (int i = 0 ; i explodes.size(); i++){ Explode e = explodes.get(i); e.draw(g); } myTank.draw(g); //画出自己坦克 myTank.eat(b); //enemyTank.draw(g);//画出敌人坦克 //if (m != null) m.draw(g); //画出子弹 for (int i = 0; i missiles.size(); i++){ Missile m = missiles.get(i); m.hitTanks(tanks); m.hitTank(myTank); m.hitWall(w1); m.hitWall(w2); //m.hitTank(enemyTank); m.draw(g); //if (!m.isLive()) missiles.remove(m); //else m.draw(g); } //画出爆炸 //e.draw(g); if (tanks.size() = 0){ for (int i = 0; i 10; i++){ tanks.add(new Tank(50+40*(i+1),50 ,false ,Tank.Direction.D, this)); } } for (int i = 0; i tanks.size(); i++){ Tank t = tanks.get(i); t.collidesWithWall(w1); t.collidesWithWall(w2); t.collidesWithTank(tanks); t.draw(g); } //画出墙 w1.draw(g); w2.draw(g); b.draw(g); } public void update(Graphics g) { if (offScreenImage == null){
显示全部
相似文档