4.1 边界检测

master
terry 3 years ago
parent 9427c0fbac
commit 6a5500d82f

Binary file not shown.

@ -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"));

@ -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() {

Loading…
Cancel
Save