需购买观看

全屏

13.4.3 容器对象存储多发炮弹


【专业IT培训机构,真正零首付入学www.bjsxt.com


      为了存储多发炮弹,我们通过定义一个容器ArrayList来管理这些对象。在paint方法中遍历容器中所有对象,并画出这些炮弹。

【示例13-19】MyGameFrame类:增加ArrayList

public class MyGameFrame extends Frame {
	Image bgImg = GameUtil.getImage("images/bg.jpg");
	Image planeImg = GameUtil.getImage("images/plane.png");

	Plane plane = new Plane(planeImg,300,300,3);
	
	ArrayList<Shell>  shellList = new ArrayList<Shell>();  
	
	//paint方法作用是:画出整个窗口及内部内容。被系统自动调用。
	@Override
	public void paint(Graphics g) {  
		g.drawImage(bgImg, 0, 0, null);
		plane.drawMySelf(g);	//画出飞机本身
		
		//画出容器中所有的子弹
		for(int i=0;i<shellList.size();i++){
			Shell b =  shellList.get(i);
			b.draw(g);
		}
	}	
    //其余代码,和上个版本一致,限于篇幅,在此不显示。
}

      我们初始化50发炮弹,在窗口初始化方法launchFrame()中添加示例13-20中的代码。

【示例13-20】添加炮弹

//初始化,生成一堆炮弹
	for(int i=0;i<50;i++){
		Shell b = new Shell();
		shellList.add(b);
	}

      运行MyGameFrame类,执行结果如图13-12所示:

图13-12 示例13-20运行效果图.png

图13-12 示例13-20运行效果图

      我们可以看到图13-12中生成了若干炮弹,游戏窗口热闹了很多!大家可以举一反三想一想,实际上,游戏窗口中的多个怪物、多个汽车、多个飞机都是生成多个对象,使用容器来统一来管理的。

分类导航
点击按住视频可拖动

缩小

关闭

  • 正在学习
  • 北京总部地址:北京市海淀区西三旗街道建材城西路中腾建华商务大厦东侧二层尚学堂
  • 咨询电话:400-009-1906 010-56233821
  • Copyright 2007-2015 北京尚学堂科技有限公司
  • 京ICP备13018289号-1 京公网安备11010802015183