import javax.swing.*;
import java.awt.*;

public class GamePanel extends JPanel {
    private Player player;
    private Target target;
    private Timer timer;

    public GamePanel() {
        player = new Player(100, 500); // 玩家初始位置
        target = new Target(300, 300); // 目标初始位置
        timer = new Timer(30, e -> updateAim()); // 每30ms更新一次瞄准方向
        timer.start();
    }

    private void updateAim() {
        // 更新玩家的瞄准方向到目标头部
        player.updateAim(target.getHeadX(), target.getHeadY(), 10); // 平滑因子为10
        repaint();
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.BLUE);
        g.fillRect(player.getX(), player.getY(), 20, 20); // 绘制玩家身体
        g.setColor(Color.CYAN);
        g.fillRect(player.getHeadX(), player.getHeadY(), 10, 10); // 绘制玩家头部

        g.setColor(Color.RED);
        g.fillRect(target.getX(), target.getY(), 20, 20); // 绘制目标身体
        g.setColor(Color.ORANGE);
        g.fillRect(target.getHeadX(), target.getHeadY(), 10, 10); // 绘制目标头部

        g.setColor(Color.GREEN);
        g.fillOval(player.getAimX(), player.getAimY(), 5, 5); // 绘制瞄准器
    }
}