JAVA全系列 教程
3762个小节阅读:7091.1k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
为了存储多发炮弹,我们通过定义一个数组(容器)来管理这些炮弹。
在paint方法中遍历容器中所有对象,并画出这些炮弹。
【示例13-19】MyGameFrame类:增加ArrayList
xxxxxxxxxx
public class MyGameFrame extends Frame {
Image bgImg = GameUtil.getImage("https://www.itbaizhan.com/wiki/images/bg.jpg");
Image planeImg = GameUtil.getImage("https://www.itbaizhan.com/wiki/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】添加炮弹
xxxxxxxxxx
//初始化,生成一堆炮弹
for(int i=0;i<50;i++){
Shell b = new Shell();
shellList.add(b);
}
运行MyGameFrame类,执行结果如图13-12所示:
我们可以看到图13-12中生成了若干炮弹,游戏窗口热闹了很多!大家可以举一反三想一想,实际上,游戏窗口中的多个怪物、多个汽车、多个飞机都是生成多个对象,使用容器来统一来管理的。