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); |
|
} |
|
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); |
|
this .addKeyListener( new KeyMonitor()); |
|
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(); |
} |
} |
} |
} |
private class KeyMonitor extends KeyAdapter |
{ |
|
public void keyPressed(KeyEvent e) { |
System.out.println( "ok" ); |
|
int key=e.getKeyCode(); |
// if(key==KeyEvent.VK_RIGHT) |
// { |
// x +=5; |
// } |
|
switch (key) |
{ |
case KeyEvent.VK_LEFT: |
x-= 5 ; |
break ; |
case KeyEvent.VK_UP: |
y-= 5 ; |
break ; |
case KeyEvent.VK_RIGHT: |
x+= 5 ; |
break ; |
case KeyEvent.VK_DOWN: |
y+= 5 ; |
break ; |
} |
} |
|
} |
} |