帮我做一个,看到敌人敌人中间敌人身上就会出现红色颜色,大大的晾开整个身体,帮我写出图片和代码,然后可以运行,然后看到之后上面就出现一个人物,一看到几个就出现几个个添加AI智能,然然后再添加,然后再添加,看到敌人身上就会出现方框

HAMI_7478539519 · 8 小时前

回答

Hamibot AI
1
· 8 小时前

你可以使用屏幕实时找色 + 浮窗画布的方式,在检测到红色敌人时自动绘制红色方框。下面代码能检测屏幕上所有红色目标,并为每个目标画一个矩形框,支持多目标同时显示。

// 文档地址 https://docs.hamibot.com/

// 请求截图权限
if (!requestScreenCapture()) {
    toastLog('请授予 Hamibot 截图权限');
    hamibot.exit();
}

// 创建全屏悬浮窗,放置一个 canvas
var window = floaty.rawWindow(
    <canvas id="canvas" />
);
window.setSize(-1, -1);
window.setTouchable(false); // 让触摸事件穿透浮窗

// 画笔配置:红色描边,线宽 5
var paint = new Paint();
paint.setColor(colors.parseColor('#ff0000'));
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(5);

// 存储所有敌人矩形框:{left, top, right, bottom}
var enemies = [];

// 绘制事件:每次重绘时清除画布,重新绘制所有矩形
window.canvas.on('draw', function (canvas) {
    // 清空画布为透明
    canvas.drawColor(0x00000000, android.graphics.PorterDuff.Mode.CLEAR);
    // 遍历绘制所有敌人框
    for (var i = 0; i < enemies.length; i++) {
        var box = enemies[i];
        canvas.drawRect(box.left, box.top, box.right, box.bottom, paint);
    }
});

// 主循环:不断截图并检测红色敌人
while (true) {
    var img = captureScreen();
    enemies = []; // 清空旧结果

    // 搜索区域:从全屏开始
    var searchRegion = [0, 0, device.width, device.height];

    // 循环查找红色目标,直到找不到为止
    while (true) {
        var point = findColor(img, '#ff0000', {
            region: searchRegion,
            threshold: 10 // 颜色容差
        });
        if (!point) break;

        // 在找到的红色点周围尝试扩展出敌人身体(简单版:固定大小框)
        // 你可以根据实际敌人大小调整宽高,或通过颜色扩散算法获取精确边界
        var boxWidth = 120;
        var boxHeight = 200;
        var left = Math.max(0, point.x - boxWidth / 2);
        var top = Math.max(0, point.y - boxHeight / 2);
        var right = Math.min(device.width, point.x + boxWidth / 2);
        var bottom = Math.min(device.height, point.y + boxHeight / 2);

        enemies.push({
            left: left,
            top: top,
            right: right,
            bottom: bottom
        });

        // 更新搜索区域,避免重复检测同一目标
        // 这里简单地将区域缩小到右侧,更精确的做法是排除已绘制的矩形
        searchRegion = [right, searchRegion[1], device.width, searchRegion[3]];
    }

    // 触发重绘,显示所有框
    window.canvas.redraw();
    sleep(100); // 控制检测频率,避免过度占用 CPU
}

运行说明

  1. 在 Hamibot 中新建脚本,粘贴以上代码。
  2. 运行前确保已授予悬浮窗权限和截图权限。
  3. 脚本启动后,会在屏幕上层显示一个透明浮窗,当检测到红色像素时,会在对应位置绘制红色矩形框。
  4. 同时检测多个敌人,每个敌人都会出现一个框。

自定义调整

  • 如果想检测其他颜色,修改 '#ff0000' 为目标颜色十六进制码。
  • 调整 boxWidthboxHeight 可以让框更贴合敌人身体。
  • 若需要精确包围敌人轮廓,可改用颜色连通域扩散算法(需额外编写),但以上代码已能实现“看到敌人就出现方框”的核心效果。

如果遇到性能问题,可以适当增大 sleep(100) 的延迟时间。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实