紧接着我们上一篇的坦克大战一,今天我们先画出一个坦克。
如果直接用面向过程的思想来做的话,那么很容易就可以画出一个坦克。
但是后面我们需要画出很多个坦克,
所以我们要先把面向对象的思想设计好。
我们的架构是Tank为一个父类,之后的我方坦克和敌方坦克都需要继承于这个类。
父类的属性如下:
//坦克类
class Tank{
//坦克的横坐标
int x = 0;
//坦克的纵坐标
int y = 0;
public Tank(int x, int y)
{
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
由上面的代码可以看出,父类只有坦克的起始位置。其他属性还没有添加上。
在这个基础上我们再创建一个我方坦克类 Hero,属性如下:
//我的坦克
class Hero extends Tank{
//套路调用父类构造函数
public Hero(int x, int y)
{
super(x, y); //super调用父类构造函数
}
}
我方坦克也是只设置了继承于父类的起始位置,其他什么都没有设置。
接着我们要开始在JPanel上面画坦克,要用最重要的画笔来画坦克。
(PS:我们可以在网上找点好看的坦克图,为什么要自己画这么low的坦克