JAVA开发是男人就坚持10秒_容器对象存储多发炮弹

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

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中的代码。

添加炮弹

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

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

运行效果:

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

发布了127 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/ZGL_cyy/article/details/104157477
今日推荐