diff --git a/docs/坦克大战笔记.docx b/docs/坦克大战笔记.docx index 0e717e5..fe01a06 100644 Binary files a/docs/坦克大战笔记.docx and b/docs/坦克大战笔记.docx differ diff --git a/src/com/demo/tank/course4/ResourceManager.java b/src/com/demo/tank/course4/ResourceManager.java index 3a47bce..a64cfab 100644 --- a/src/com/demo/tank/course4/ResourceManager.java +++ b/src/com/demo/tank/course4/ResourceManager.java @@ -8,6 +8,7 @@ import java.io.IOException; public class ResourceManager { public static BufferedImage tankL, tankR, tankU, tankD; + public static BufferedImage badTankL, badTankR, badTankU, badTankD; public static BufferedImage bulletL, bulletR, bulletU, bulletD; public static BufferedImage[] explodes = new BufferedImage[16]; @@ -18,6 +19,11 @@ public class ResourceManager { tankR = ImageUtil.rotateImage(tankU, 90); tankD = ImageUtil.rotateImage(tankU, 180); + badTankU = ImageIO.read(ResourceManager.class.getClassLoader().getResourceAsStream("images/GoodTank1.png")); + badTankL = ImageUtil.rotateImage(badTankU, -90); + badTankR = ImageUtil.rotateImage(badTankU, 90); + badTankD = ImageUtil.rotateImage(badTankU, 180); + bulletL = ImageIO.read(ResourceManager.class.getClassLoader().getResourceAsStream("images/bulletL.gif")); bulletR = ImageIO.read(ResourceManager.class.getClassLoader().getResourceAsStream("images/bulletR.gif")); bulletU = ImageIO.read(ResourceManager.class.getClassLoader().getResourceAsStream("images/bulletU.gif")); diff --git a/src/com/demo/tank/course4/Tank.java b/src/com/demo/tank/course4/Tank.java index 3029409..51c840f 100644 --- a/src/com/demo/tank/course4/Tank.java +++ b/src/com/demo/tank/course4/Tank.java @@ -28,16 +28,16 @@ public class Tank { //根据方向绘制坦克 switch (dir){ case UP: - g.drawImage(ResourceManager.tankU, x, y, null); + g.drawImage(this.group == Group.GOOD ? ResourceManager.tankU : ResourceManager.badTankU, x, y, null); break; case DOWN: - g.drawImage(ResourceManager.tankD, x, y, null); + g.drawImage(this.group == Group.GOOD ? ResourceManager.tankD : ResourceManager.badTankD, x, y, null); break; case LEFT: - g.drawImage(ResourceManager.tankL, x, y, null); + g.drawImage(this.group == Group.GOOD ? ResourceManager.tankL: ResourceManager.badTankL, x, y, null); break; case RIGHT: - g.drawImage(ResourceManager.tankR, x, y, null); + g.drawImage(this.group == Group.GOOD ? ResourceManager.tankR : ResourceManager.badTankR, x, y, null); break; } move(); @@ -66,6 +66,16 @@ public class Tank { this.randomDirection(); } } + + //边界检测 + boundsCheck(); + } + + private void boundsCheck() { + if(x < 0) x = 0; + if(x > TankFrameV4.GAME_WIDTH - Tank.WIDTH) x = TankFrameV4.GAME_WIDTH - Tank.WIDTH; + if(y < 30) y = 30; //算上菜单条 + if(y > TankFrameV4.GAME_HEIGHT - Tank.HEIGHT) y = TankFrameV4.GAME_HEIGHT - Tank.HEIGHT; } private void randomDirection() {