J2SE 坦克大战 马士兵(5)

项目6要求:


代码:

public class TankClient extends Frame{
public final int GAME_WIDTH  = 800;
public final int GAME_HEIGHT = 600;//用来表名坦克的宽和高
int x = 50;
int y = 50 ;//用来暂时表现坦克的运动
public void lanuchFrame(){
this.setLocation(300,200);
this.setSize(GAME_WIDTH ,GAME_HEIGHT);
this.setResizable(false);
this.setBackground(Color.GREEN);
setVisible(true);
this.addKeyListener(new KeyMonitor());
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
                Frame f =(Frame)e.getSource();
                f.setVisible(false);
}
});
new Thread(new PaintThread()).start();
}
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 static void main(String[] args) {
      new TankClient().lanuchFrame();
}
private class PaintThread implements Runnable{
//该内部类是为了不停的重画
     public void run() {
while(true){
repaint();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
private class KeyMonitor extends KeyAdapter{
public void keyPressed(KeyEvent e) {
           int key = e.getKeyCode();
           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;
           }
}//添加键盘事件,java.awt.event
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值