diff --git a/docs/坦克大战笔记.docx b/docs/坦克大战笔记.docx index 3334933..47c8a0d 100644 Binary files a/docs/坦克大战笔记.docx and b/docs/坦克大战笔记.docx differ diff --git a/src/com/demo/tank/coruse2/MainV2.java b/src/com/demo/tank/coruse2/MainV2.java index 2b7ceb6..04ec48e 100644 --- a/src/com/demo/tank/coruse2/MainV2.java +++ b/src/com/demo/tank/coruse2/MainV2.java @@ -1,10 +1,11 @@ package com.demo.tank.coruse2; -import com.demo.tank.coruse1.TankFrame; - public class MainV2 { - public static void main(String[] args){ + public static void main(String[] args) throws InterruptedException { TankFrame tf = new TankFrame(); - tf.repaint(); + while (true){ + Thread.sleep(50); + tf.repaint(); + } } } diff --git a/src/com/demo/tank/coruse2/Tank.java b/src/com/demo/tank/coruse2/Tank.java index f0ff6a0..1631cd9 100644 --- a/src/com/demo/tank/coruse2/Tank.java +++ b/src/com/demo/tank/coruse2/Tank.java @@ -1,11 +1,11 @@ package com.demo.tank.coruse2; import java.awt.*; - public class Tank { private int x,y; private Direction dir; private static final int SPEED = 10; + private boolean moving; public Tank(int x, int y, Direction dir) { @@ -16,6 +16,12 @@ public class Tank { public void paint(Graphics g) { g.fillRect(x, y,50,50); + move(); + } + + public void move(){ + //如果没有移动 return + if(!moving) return; switch (dir){ case UP: y -= SPEED; break; @@ -53,4 +59,12 @@ public class Tank { public void setDir(Direction dir) { this.dir = dir; } + + public boolean isMoving() { + return moving; + } + + public void setMoving(boolean moving) { + this.moving = moving; + } } diff --git a/src/com/demo/tank/coruse2/TankFrame.java b/src/com/demo/tank/coruse2/TankFrame.java index bbb9351..27d3d01 100644 --- a/src/com/demo/tank/coruse2/TankFrame.java +++ b/src/com/demo/tank/coruse2/TankFrame.java @@ -77,10 +77,15 @@ public class TankFrame extends Frame { } public void setTankDirection(){ - if(bL) tank.setDir(Direction.LEFT); - if(bR) tank.setDir(Direction.RIGHT); - if(bU) tank.setDir(Direction.UP); - if(bD) tank.setDir(Direction.DOWN); + if(!bL && !bR && !bU && !bD){ + tank.setMoving(false); + }else{ + tank.setMoving(true); + if(bL) tank.setDir(Direction.LEFT); + if(bR) tank.setDir(Direction.RIGHT); + if(bU) tank.setDir(Direction.UP); + if(bD) tank.setDir(Direction.DOWN); + } } } }