本项目实现了一个具备任务分配、入侵者检测与攻击、自主巡逻功能的智能无人机可视化平台,采用多线程机制保证无人机、任务、入侵者的并发运行。整个项目共包含 7 个核心类,下面逐类进行详细解析。
1. Drone 类(无人机核心实体)
该类是无人机的实体定义,封装了无人机的位置、速度、尺寸、状态等属性,同时提供了绘制、移动、状态修改的核心方法。
package com.example.drone.v4;
import java.awt.*;
/**
* @description 无人机实体类,封装属性与核心行为(绘制、移动)
*/
public class Drone {
int x, y; // 无人机坐标(左上角)
int speedx, speedy; // 横、纵方向速度
int size; // 无人机主体尺寸
int state; // 无人机状态(0=巡逻,1=攻击/任务执行,2=补充弹药)
int stateSize; // 无人机状态指示灯尺寸
int scanSize; // 无人机雷达扫描范围尺寸
// 构造方法:初始化无人机核心属性,默认赋值尺寸相关常量
public Drone(int x, int y, int state, int speedx, int speedy) {
this.x = x;
this.y = y;
this.state = state;
this.speedx = speedx;
this.speedy = speedy;
this.size = 30; // 无人机主体固定尺寸 30
this.stateSize = 15; // 状态指示灯固定尺寸 15
this.scanSize = 100; // 雷达扫描范围固定尺寸 100(圆形)
}
// 绘制无人机:雷达→主体→状态指示灯,分层绘制实现可视化
{
(, , , );
bg.setColor(radarColor);
bg.fillOval(x, y, scanSize, scanSize);
(, , );
bg.setColor(bodyColor);
bg.fillOval(x + , y + , size, size);
Color stateColor;
(state) {
:
stateColor = Color.RED;
;
:
stateColor = Color.YELLOW;
;
:
stateColor = Color.GRAY;
;
:
stateColor = Color.YELLOW;
;
}
bg.setColor(stateColor);
bg.fillOval(x + , y + , stateSize, stateSize);
}
{
;
;
(x < || (x + scanSize) > ) {
speedx = -speedx;
hitX = ;
}
(y < || (y + scanSize) > ) {
speedy = -speedy;
hitY = ;
}
(hitX) {
x = Math.max(, Math.min( - scanSize, x));
}
(hitY) {
y = Math.max(, Math.min( - scanSize, y));
}
x += speedx;
y += speedy;
}
{
.state = state;
}
{
.state;
}
}

