import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class TankClient extends Frame{ int x = 50;
int y = 50;
public static final int GAME_WIDTH = 800;
public static final int GAME_HEIGHT = 600;
public static final int XSPEED = 5;
public static final int YSPEED = 5;
Image offScreen = null;
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.GREEN);
g.fillOval(x, y, 30, 30);
g.setColor(c);
} public void update(Graphics g) {
if(offScreen == null){
offScreen = this.createImage(GAME_WIDTH, GAME_HEIGHT);
}
Graphics goffScreen = offScreen.getGraphics();
Color c = goffScreen.getColor();
goffScreen.setColor(Color.BLACK);
goffScreen.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT);
g.setColor(c);
paint(goffScreen);
g.drawImage(offScreen, 0, 0, null);
}
public static void main(String[] args) {
TankClient tc = new TankClient();
tc.launch();
}
public void launch() {
setTitle("Tank War!");
setSize(GAME_WIDTH, GAME_HEIGHT);
setLocation(300,150);
setBackground(Color.BLACK);
setResizable(false);
addKeyListener(new MyKey());
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
new Thread(new RPaint()).start();
setVisible(true);
}
private class RPaint implements Runnable { public void run() {
while(true) {
repaint();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
private class MyKey extends KeyAdapter {
public void keyPressd(KeyEvent e) {
int key = e.getKeyCode();
switch(key) {
case KeyEvent.VK_UP :
y -= 5;
break;
case KeyEvent.VK_DOWN :
y += 5;
break;
case KeyEvent.VK_LEFT :
x -= 5;
break;
case KeyEvent.VK_RIGHT :
x += 5;
break;
}
}
}
}用键盘控制移动不了,请各位大侠看下怎么回事~谢过了!
import java.awt.*;
import java.awt.event.*;public class TankClient extends Frame{ int x = 50;
int y = 50;
public static final int GAME_WIDTH = 800;
public static final int GAME_HEIGHT = 600;
public static final int XSPEED = 5;
public static final int YSPEED = 5;
Image offScreen = null;
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.GREEN);
g.fillOval(x, y, 30, 30);
g.setColor(c);
} public void update(Graphics g) {
if(offScreen == null){
offScreen = this.createImage(GAME_WIDTH, GAME_HEIGHT);
}
Graphics goffScreen = offScreen.getGraphics();
Color c = goffScreen.getColor();
goffScreen.setColor(Color.BLACK);
goffScreen.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT);
g.setColor(c);
paint(goffScreen);
g.drawImage(offScreen, 0, 0, null);
}
public static void main(String[] args) {
TankClient tc = new TankClient();
tc.launch();
}
public void launch() {
setTitle("Tank War!");
setSize(GAME_WIDTH, GAME_HEIGHT);
setLocation(300,150);
setBackground(Color.BLACK);
setResizable(false);
addKeyListener(new MyKey());
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
new Thread(new RPaint()).start();
setVisible(true);
}
private class RPaint implements Runnable { public void run() {
while(true) {
repaint();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
private class MyKey extends KeyAdapter {
public void keyPressd(KeyEvent e) {
int key = e.getKeyCode();
switch(key) {
case KeyEvent.VK_UP :
y -= 5;
break;
case KeyEvent.VK_DOWN :
y += 5;
break;
case KeyEvent.VK_LEFT :
x -= 5;
break;
case KeyEvent.VK_RIGHT :
x += 5;
break;
}
}
}
}用键盘控制移动不了,请各位大侠看下怎么回事~谢过了!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货