import java.awt.*; |
import java.awt.event.*; |
public class TankClient extends Frame { |
|
public static final int GAME_WIDTH= 800 ; |
public static final int GAME_HEIGHT= 600 ; |
|
int x = 50 , y = 50 ; |
|
Image offScreenImage = null ; |
|
public void paint(Graphics g) { |
Color c = g.getColor(); |
g.setColor(Color.RED); |
g.fillOval(x, y, 30 , 30 ); |
g.setColor(c); |
|
y += 5 ; |
} |
|
public void update(Graphics g) { |
if (offScreenImage == null ) { |
offScreenImage = this .createImage(GAME_WIDTH, GAME_WIDTH); |
} |
Graphics gOffScreen = offScreenImage.getGraphics(); |
Color c = gOffScreen.getColor(); |
gOffScreen.setColor(Color.GREEN); |
gOffScreen.fillRect( 0 , 0 , GAME_WIDTH, GAME_WIDTH); |
gOffScreen.setColor(c); |
paint(gOffScreen); |
g.drawImage(offScreenImage, 0 , 0 , null ); |
} |
public void lauchFrame() { |
this .setLocation( 400 , 300 ); |
this .setSize(GAME_WIDTH, GAME_WIDTH); |
this .setTitle( "TankWar" ); |
this .addWindowListener( new WindowAdapter() { |
public void windowClosing(WindowEvent e) { |
System.exit( 0 ); |
} |
}); |
this .setResizable( false ); |
this .setBackground(Color.GREEN); |
setVisible( true ); |
|
new Thread( new PaintThread()).start(); |
} |
public static void main(String[] args) { |
TankClient tc = new TankClient(); |
tc.lauchFrame(); |
} |
|
private class PaintThread implements Runnable { |
public void run() { |
while ( true ) { |
repaint(); |
try { |
Thread.sleep( 50 ); |
} catch (InterruptedException e) { |
e.printStackTrace(); |
} |
} |
} |
} |
} |