From 5334cb539168dda1110f449b19742bb3c559fa6f Mon Sep 17 00:00:00 2001 From: kn5886348135 <56352848+kn5886348135@users.noreply.github.com> Date: Tue, 22 Nov 2022 15:24:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=B2=E6=9F=93=E7=88=86=E7=82=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/tankbattle/Explode.java | 29 +++++++++++++++++++ .../com/example/tankbattle/ResourceMgr.java | 2 ++ .../java/com/example/tankbattle/Tank.java | 2 +- .../com/example/tankbattle/TankFrame.java | 4 +++ 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/example/tankbattle/Explode.java diff --git a/src/main/java/com/example/tankbattle/Explode.java b/src/main/java/com/example/tankbattle/Explode.java new file mode 100644 index 0000000..dcb53fc --- /dev/null +++ b/src/main/java/com/example/tankbattle/Explode.java @@ -0,0 +1,29 @@ +package com.example.tankbattle; + +import java.awt.*; + +public class Explode { + public static int WIDTH = ResourceMgr.explodes[0].getWidth(); + public static int HEIGHT = ResourceMgr.explodes[0].getHeight(); + + private int x, y; + + private boolean living = true; + TankFrame tf = null; + + private int step = 0; + + public Explode(int x, int y, TankFrame tf) { + this.x = x; + this.y = y; + this.tf = tf; + } + + public void paint(Graphics g) { + + g.drawImage(ResourceMgr.explodes[step++], x, y, null); + + if (step >= ResourceMgr.explodes.length) + step = 0; + } +} diff --git a/src/main/java/com/example/tankbattle/ResourceMgr.java b/src/main/java/com/example/tankbattle/ResourceMgr.java index 1d77a8f..68e3f56 100644 --- a/src/main/java/com/example/tankbattle/ResourceMgr.java +++ b/src/main/java/com/example/tankbattle/ResourceMgr.java @@ -7,6 +7,7 @@ import javax.imageio.ImageIO; public class ResourceMgr { public static BufferedImage tankL, tankU, tankR, tankD; public static BufferedImage bulletL, bulletU,bulletR, bulletD; + public static BufferedImage[] explodes = new BufferedImage[16]; static { try { @@ -19,6 +20,7 @@ public class ResourceMgr { bulletU = ImageIO.read(ResourceMgr.class.getClassLoader().getResourceAsStream("images/bulletU.gif")); bulletR = ImageIO.read(ResourceMgr.class.getClassLoader().getResourceAsStream("images/bulletR.gif")); bulletD = ImageIO.read(ResourceMgr.class.getClassLoader().getResourceAsStream("images/bulletD.gif")); + for (int i = 0; i < 16; i++) explodes[i] = ImageIO.read(ResourceMgr.class.getClassLoader().getResourceAsStream("images/e" + (i + 1) + ".gif")); } catch (IOException e) { e.printStackTrace(); } diff --git a/src/main/java/com/example/tankbattle/Tank.java b/src/main/java/com/example/tankbattle/Tank.java index 7a0d133..c292b0f 100644 --- a/src/main/java/com/example/tankbattle/Tank.java +++ b/src/main/java/com/example/tankbattle/Tank.java @@ -81,7 +81,7 @@ public class Tank { break; } - if (random.nextInt(10) > 5) this.fire(); + if (random.nextInt(10) > 8) this.fire(); } public void paint(Graphics g) { diff --git a/src/main/java/com/example/tankbattle/TankFrame.java b/src/main/java/com/example/tankbattle/TankFrame.java index 2368690..4c32c47 100644 --- a/src/main/java/com/example/tankbattle/TankFrame.java +++ b/src/main/java/com/example/tankbattle/TankFrame.java @@ -17,6 +17,8 @@ public class TankFrame extends Frame { List bullets = new ArrayList<>(); List tanks = new ArrayList<>(); + Explode e = new Explode(100, 100, this); + static final int GAME_WIDTH = 800,GAME_HEIGHT=600; public TankFrame() { @@ -69,6 +71,8 @@ public class TankFrame extends Frame { for (int j = 0; j < tanks.size(); j++) bullets.get(i).collideWith(tanks.get(j)); } + + e.paint(g); // for (Iterator it = bullets.iterator(); it.hasNext()) { // Bullet b = it.next(); // if (!b.live) it.remove();