文档详情

java知识自己总结.doc

发布:2018-02-06约2.03千字共3页下载文档
文本预览下载声明
坦克大战总结 匿名类: 2.画圆方法:public void paint(Graphics g) { Color c=g.getColor();保存原来的前景色 g.setColor(Color.RED); g.fillOval(50, 50, 30, 30); g.setColor(c);设置原来的前景色 }从frame 生成方法,且自动调用 3.实现动画效果:改变坐标,new一个线程调用repaint重画。(内部类) 调用一个线程:new Thread(new PaintThread()).start(); public class PaintThread implements Runnable{ public void run() { while(true){ repaint();会自动调用前面的paint方法。 try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } 4.闪烁现象:使用双缓冲消除。设置一个虚拟屏幕。 Update方法位于container. Image 方法 Image picture =null;定义一个图像。 public void update(Graphics g) { if(offScreenImage==null){ offScreenImage=this.createImage(800,600); } Graphics gOffscreen=offScreenImage.getGraphics(); Color c=gOffscreen.getColor(); gOffscreen.setColor(Color.GRAY); gOffscreen.fillRect(0, 0, 800, 600); gOffscreen.setColor(c); paint(gOffscreen); g.drawImage(offScreenImage, 0, 0, null); }使用缓冲图像消除闪烁。 5.定义常量:public static final GAME_WIDTH=800; Public static final GAME_HEIGHT=600; 6.键盘控制坦克移动。建立键盘监听类。内部类。 private class KeyMonitor extends KeyAdapter{ public void keyPressed(KeyEvent e) { int key=e.getKeyCode(); switch(key){ case KeyEvent.VK_LEFT: x=x-5; break; case KeyEvent.VK_RIGHT: x=x+5; break; case KeyEvent.VK_UP: y=y-5; break; case KeyEvent.VK_DOWN: y=y+5; break; } } } 7.增加一百辆坦克.直接把坦克定义为一个类.利用面向对象思维.并把和坦克相关的方法,属性都添加进去. import java.awt.Color; import java.awt.Graphics; import java.awt.event.KeyEvent; public class Tank { int x,y; public Tank(int x, int y) { this.x = x; this.y = y; } public void draw(Graphics g) { Color c=g.getColor(); g.setColor(Color.RED); g.fillOval(x, y, 30, 30); g.setColor(c); } public void keyPressed(KeyEvent e) { int key=e.getKeyCode(); switch(key){ case KeyEvent.VK_LEFT: x=x-5; break; case KeyEvent.VK_RIGHT: x=x+5; break; case KeyEvent.VK_UP: y=y-5; break; case KeyEvent.VK_DOWN: y
显示全部
相似文档