先将程序进行面向对象对的改革。
没有父类的 super()(原意为调用父类的构造方法)调用的是object的构造方法,可以去掉。
总结一下这个面向对象 是建立一个 具有构造自己,画出自己,收到监听器发来的事件后运动的这些方法的类 tank。
接下来是双缓冲问题。
双缓冲的思想是,原有的update是先拿背景色覆盖 再画,现在直接拿画好的覆盖。具体代码是:
@Override
public void update(Graphics g){
if (beijing==null){
beijing=this.createImage(400, 300);
}
//这是建立一个缓冲图像。
Graphics gs=beijing.getGraphics();
Color c=gs.getColor();
gs.setColor(Color.black);
gs.fillRect(x, y, 30, 30);
gs.setColor(c);
//这是将图像绘制到缓冲图像上
paint(gs);
g.drawImage(beijing, 0, 0,null);
//这是将缓冲图像绘制到屏幕上
}
坦克大战(1)顺利完成。
二的研究是八个方向的运动
算了 明天再研究吧