JAVA全系列 教程
3762个小节阅读:7089.4k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
·设计飞机类
有了GameObject类,设计飞机类特别简单。我们只需简单的继承,即可使用:
【示例13-12】Plane类
xxxxxxxxxx
package com.bjsxt.plane;
import java.awt.Graphics;
import java.awt.Image;
public class Plane extends GameObject {
@Override
public void drawMySelf(Graphics g) {
super.drawMySelf(g);
this.x +=3;//飞机水平飞,我们也可以调整x、y算法,按照我们指定的路径飞行
}
public Plane(Image img, double x, double y) {
super(img,x,y);
}
}
通过继承,我们发现实现新的类,爽了很多!
·MyGameFrame类调用方式的调整
我们将Plane类封装后,也无需在MyGameFrame类中添加那么多飞机的属性,我们全部封装到了Plane类里面,因此,调用也变得更加简单。
【示例13-13】封装后的MyGameFrame类
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);
//paint方法作用是:画出整个窗口及内部内容。被系统自动调用。
@Override
public void paint(Graphics g) {
g.drawImage(bgImg, 0, 0, null);
plane.drawMySelf(g); //画出飞机本身
}
//其余代码,没有任何变化,不在附上,自行参考上一个版本。
}
通过面向对象封装后,如果我们要再创建多个飞机,也变得异常简单。
【示例13-14】创建多个飞机
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);
Plane plane2 = new Plane(planeImg,300,350);
Plane plane3 = new Plane(planeImg,300,400);
//paint方法作用是:画出整个窗口及内部内容。被系统自动调用。
@Override
public void paint(Graphics g) {
g.drawImage(bgImg, 0, 0, null);
plane.drawMySelf(g); //画出飞机本身
plane2.drawMySelf(g); //画出飞机本身
plane3.drawMySelf(g); //画出飞机本身
}
//其余代码,和上个版本一致,为节省篇幅突出重点,不在附上。
}
执行结果如图13-10所示: