class Player {
    private int x, y; // 玩家位置
    private int headX, headY; // 玩家头部位置
    private int aimX, aimY; // 玩家瞄准的位置

    public Player(int x, int y) {
        this.x = x;
        this.y = y;
        this.headX = x;
        this.headY = y - 10; // 假设头部在身体上方10像素
        this.aimX = x;
        this.aimY = y;
    }

    public void updateAim(int targetHeadX, int targetHeadY, int smoothFactor) {
        // 平滑移动瞄准方向到目标头部
        aimX += (targetHeadX - aimX) / smoothFactor;
        aimY += (targetHeadY - aimY) / smoothFactor;
    }

    public int getAimX() {
        return aimX;
    }

    public int getAimY() {
        return aimY;
    }

    public int getHeadX() {
        return headX;
    }

    public int getHeadY() {
        return headY;
    }
}

class Target {
    private int x, y; // 目标位置
    private int headX, headY; // 目标头部位置

    public Target(int x, int y) {
        this.x = x;
        this.y = y;
        this.headX = x;
        this.headY = y - 10; // 假设头部在身体上方10像素
    }

    public int getHeadX() {
        return headX;
    }

    public int getHeadY() {
        return headY;
    }
}