From e119a9798cd8ad7a1f6112738144937cc28482e9 Mon Sep 17 00:00:00 2001 From: bingor_yhj Date: Fri, 30 Sep 2022 14:45:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9D=A6=E5=85=8B=E5=A4=A7=E6=88=98(=E4=B8=80?= =?UTF-8?q?=E6=9C=9F)-=E5=A2=9E=E5=8A=A0=E5=AD=90=E5=BC=B9=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/msb/Bullet.java | 44 ++++++++++++++++++++++++++++++++++++++ src/com/msb/TankFrame.java | 2 ++ 2 files changed, 46 insertions(+) create mode 100644 src/com/msb/Bullet.java diff --git a/src/com/msb/Bullet.java b/src/com/msb/Bullet.java new file mode 100644 index 0000000..9e98e77 --- /dev/null +++ b/src/com/msb/Bullet.java @@ -0,0 +1,44 @@ +package com.msb; + +import java.awt.*; + +/** + * @Author bingor + * @Date 2022-09-30 14:33 + * @Description: 子弹类 + * @Version: 1.0 + */ +public class Bullet extends Frame { + + private int x, y; + private DirEnum dir; + public static final int WIDTH = 8; + public static final int HEIGHT = 8; + public static final int SPEED = 5; + + public Bullet(int x, int y, DirEnum dir) { + this.x = x; + this.y = y; + this.dir = dir; + } + + public void paint(Graphics g) { + Color color = g.getColor(); + g.setColor(Color.RED); + g.fillOval(x, y, WIDTH, HEIGHT); + g.setColor(color); //还原画笔原来的颜色 + moving(); + } + + public void moving() { + + switch (dir) { + case UP: y -= SPEED; break; + case DOWN: y += SPEED; break; + case LEFT: x -= SPEED; break; + case RIGHT: x += SPEED; break; + default: break; + } + + } +} diff --git a/src/com/msb/TankFrame.java b/src/com/msb/TankFrame.java index 271aeae..3260ece 100644 --- a/src/com/msb/TankFrame.java +++ b/src/com/msb/TankFrame.java @@ -15,6 +15,7 @@ import java.awt.event.WindowEvent; public class TankFrame extends Frame { Tank tank = new Tank(200, 200, DirEnum.RIGHT); + Bullet bullet = new Bullet(200, 200, DirEnum.DOWN); public TankFrame() { @@ -39,6 +40,7 @@ public class TankFrame extends Frame { public void paint(Graphics g) { super.paint(g); tank.paint(g); + bullet.paint(g); } //这里使用内部内的原因是,只有TankFrame用到