关闭

java项目之——坦克大战18

标签: java项目
216人阅读 评论(0) 收藏 举报
分类:

本版本:画出多辆坦克。

1.创建敌方坦克集合

List<Tank> tanks = new ArrayList<Tank>();
2.循环画出,坦克对象t

public void paint(Graphics g) {
		g.drawString("missiles count:"+missiles.size(), 10,50);
	    for (int i = 0; i < missiles.size(); i++) {
			Missile m = missiles.get(i);
			m.draw(g);
			m.hitTanks(tanks);
		}
            
	    for (int i = 0; i < explodes.size(); i++) {
			Explode e = explodes.get(i);
			e.draw(g);
			
		}
	    
    	for(int i=0; i<10; i++){
	        Tank t = tanks.get(i);
	        t.draw(g);
	    }
	 
		myTank.draw(g);	
		
	}

3.在launchFrame中添加进入集合。

public void lauchFrame(){
		for(int i=0;i<10;i++){
			tanks.add(new Tank(50+40*(i+1),50,false,this));
		}
		this.setSize(GAME_WIDTH,GAME_HEIGHT);
		this.setTitle("TankWar");
		this.setLocation(80, 60);
		this.setVisible(true);
		this.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e) {
			    System.exit(0);	
			}
		});
		this.setResizable(false);
		new Thread(new paintThread()).start();
		this.addKeyListener(new KeyMonitor());
	}

4.打坦克,hitTanks 创建

public boolean hitTanks(List<Tank> tanks){
		for(int i=0;i<tanks.size();i++){
			if(hitTank(tanks.get(i))){
				return true;
			}
		}
		return false;
	}
在 主方法里面调用hitTanks(),这样就完成了。

m.hitTanks(tanks);
运行结果:


总结:本版本画出多个敌方坦克,同样使用了泛型,没有了敌方坦克,我方坦克打击tanks,所以重新构建hittank方法。


下一个版本:让敌方坦克更加智能(涉及到一个小算法,面试中容易被问到,比较重要)

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35951次
    • 积分:1212
    • 等级:
    • 排名:千里之外
    • 原创:87篇
    • 转载:16篇
    • 译文:0篇
    • 评论:15条
    最新评论