From 41e9c91ac87cb6e79a11a007d169a784d3064d9c Mon Sep 17 00:00:00 2001 From: kn5886348135 <56352848+kn5886348135@users.noreply.github.com> Date: Sat, 19 Nov 2022 16:44:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=8C=E6=96=B9=E5=9D=A6?= =?UTF-8?q?=E5=85=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/tankbattle/Bullet.java | 6 ++++-- src/main/java/com/example/tankbattle/Main.java | 6 ++++++ src/main/java/com/example/tankbattle/Tank.java | 4 ++-- src/main/java/com/example/tankbattle/TankFrame.java | 8 ++++++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/example/tankbattle/Bullet.java b/src/main/java/com/example/tankbattle/Bullet.java index 35b3d38..cef8d0a 100644 --- a/src/main/java/com/example/tankbattle/Bullet.java +++ b/src/main/java/com/example/tankbattle/Bullet.java @@ -9,7 +9,7 @@ public class Bullet { private int x, y; private Dir dir; - public boolean live = true; + private boolean live = true; private TankFrame tf; @@ -21,7 +21,9 @@ public class Bullet { } public void paint(Graphics g) { - if (!live) tf.bullets.remove(this); + if (!live) { + tf.bullets.remove(this); + } switch (dir) { case LEFT: g.drawImage(ResourceMgr.bulletL, x, y, null); diff --git a/src/main/java/com/example/tankbattle/Main.java b/src/main/java/com/example/tankbattle/Main.java index 61786e5..3a4fab6 100644 --- a/src/main/java/com/example/tankbattle/Main.java +++ b/src/main/java/com/example/tankbattle/Main.java @@ -3,6 +3,12 @@ package com.example.tankbattle; public class Main { public static void main(String[] args) throws InterruptedException { TankFrame tf = new TankFrame(); + + // 初始化敌方坦克 + for (int i = 0; i < 5; i++) { + tf.tanks.add(new Tank(50 + i * 80, 200, Dir.DOWN, tf)); + } + while (true) { Thread.sleep(50); tf.repaint(); diff --git a/src/main/java/com/example/tankbattle/Tank.java b/src/main/java/com/example/tankbattle/Tank.java index bb22918..93ac2d5 100644 --- a/src/main/java/com/example/tankbattle/Tank.java +++ b/src/main/java/com/example/tankbattle/Tank.java @@ -7,8 +7,8 @@ public class Tank { private Dir dir = Dir.DOWN; private static final int SPEED = 5; - private static int WIDTH = ResourceMgr.tankD.getWidth(); - private static int HEIGHT = ResourceMgr.tankD.getHeight(); + public static int WIDTH = ResourceMgr.tankD.getWidth(); + public static int HEIGHT = ResourceMgr.tankD.getHeight(); private boolean moving = false; diff --git a/src/main/java/com/example/tankbattle/TankFrame.java b/src/main/java/com/example/tankbattle/TankFrame.java index 6726639..92411bb 100644 --- a/src/main/java/com/example/tankbattle/TankFrame.java +++ b/src/main/java/com/example/tankbattle/TankFrame.java @@ -9,13 +9,13 @@ import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; public class TankFrame extends Frame { - Tank myTank = new Tank(200, 200, Dir.DOWN, this); + Tank myTank = new Tank(200, 400, Dir.DOWN, this); + List tanks = new ArrayList<>(); List bullets = new ArrayList<>(); public static final int GAME_WIDTH = 800,GAME_HEIGHT=600; @@ -59,6 +59,10 @@ public class TankFrame extends Frame { for (int i = 0; i < bullets.size(); i++) { bullets.get(i).paint(g); } + + for (int i = 0; i < tanks.size(); i++) { + tanks.get(i).paint(g); + } // for (Iterator it = bullets.iterator(); it.hasNext()) { // Bullet b = it.next(); // if (!b.live) it.remove();