
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; |
} |
} |
|
} |
} |



