帮我做一个,看到敌人敌人中间敌人身上就会出现红色颜色,大大的晾开整个身体,帮我写出图片和代码,然后可以运行,然后看到之后上面就出现一个人物,一看到几个就出现几个个添加AI智能,然然后再添加,然后再添加,看到敌人身上就会出现方框
回答
你可以使用屏幕实时找色 + 浮窗画布的方式,在检测到红色敌人时自动绘制红色方框。下面代码能检测屏幕上所有红色目标,并为每个目标画一个矩形框,支持多目标同时显示。
// 文档地址 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
}
运行说明:
- 在 Hamibot 中新建脚本,粘贴以上代码。
- 运行前确保已授予悬浮窗权限和截图权限。
- 脚本启动后,会在屏幕上层显示一个透明浮窗,当检测到红色像素时,会在对应位置绘制红色矩形框。
- 同时检测多个敌人,每个敌人都会出现一个框。
自定义调整:
- 如果想检测其他颜色,修改
'#ff0000'为目标颜色十六进制码。 - 调整
boxWidth和boxHeight可以让框更贴合敌人身体。 - 若需要精确包围敌人轮廓,可改用颜色连通域扩散算法(需额外编写),但以上代码已能实现“看到敌人就出现方框”的核心效果。
如果遇到性能问题,可以适当增大 sleep(100) 的延迟时间。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实