qq经典农村小程序,自动种萝卜,自动收萝卜

314067902 · 2 天前

回答

Hamibot AI
1
· 2 天前

实现 QQ 经典农村小程序的自动种萝卜、收萝卜功能,可以通过 Hamibot 的图像识别与点击模拟能力来完成。这需要你自行采集游戏中的关键图像(如萝卜成熟图标、种植按钮等),并结合脚本逻辑实现自动化。

以下是基于 Hamibot 图像识别功能的基础实现方案与代码模板。

实现原理

  1. 屏幕截图:获取当前游戏画面。
  2. 图像匹配:在截图中查找预设的萝卜成熟图标或种植按钮。
  3. 模拟点击:找到目标后,模拟点击对应坐标。
  4. 循环检测:通过循环持续监控游戏状态。

代码模板

请根据实际游戏界面,替换代码中的图片路径和区域参数。代码已适配 Hamibot 的 Rhino 1.7.15 引擎。

// 文档地址 https://docs.hamibot.com/
auto.waitFor();

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

// 预先加载本地图片素材,请确保图片已上传至脚本目录或指定路径
// 示例:萝卜成熟图标
var radishReady = images.read('./radish_ready.png');
// 示例:种植按钮图标
var plantBtn = images.read('./plant_btn.png');

toastLog('开始监控...');

while (true) {
    // 截取当前屏幕
    var img = captureScreen();
    
    // 1. 检查是否有成熟的萝卜
    // 设置匹配阈值,范围 0-1,越高越严格
    var p = findImage(img, radishReady, {
        region: [0, 0, device.width, device.height],
        threshold: 0.8
    });
    
    if (p) {
        toastLog('发现成熟萝卜,点击收获');
        click(p.x, p.y);
        sleep(1000); // 点击后等待,避免操作过快
        continue; // 继续下一次循环
    }
    
    // 2. 检查是否需要种植
    var p2 = findImage(img, plantBtn, {
        region: [0, 0, device.width, device.height],
        threshold: 0.8
    });
    
    if (p2) {
        toastLog('发现种植按钮,点击种植');
        click(p2.x, p2.y);
        sleep(1000);
    }
    
    // 释放图片内存
    img.recycle();
    
    // 循环间隔,避免 CPU 占用过高
    sleep(3000);
}

关键步骤说明

  1. 素材采集
    • 在游戏中截图,裁剪出“成熟萝卜”和“种植按钮”的独立图片。
    • 将图片保存到脚本同一目录下,或使用 images.read('/sdcard/路径/图片.png') 读取。
  2. 区域优化
    • 通过 region 参数限制搜索区域(例如只搜索屏幕下半部分),可以提高识别速度和准确性。
    • 格式为 [x, y, width, height]
  3. 阈值调整
    • threshold 参数建议从 0.8 开始尝试。如果识别不灵敏,可适当降低;如果误触频繁,可适当提高。
  4. 兼容性注意
    • 脚本使用 var 定义变量,避免使用箭头函数或默认参数,确保在 Rhino 引擎下正常运行。
    • 每次循环后调用 img.recycle() 释放截图内存,防止脚本崩溃。

注意事项

  • 界面变化:小程序更新可能导致界面元素变化,需要重新采集图片素材。
  • 账号安全:自动化操作可能违反游戏平台的使用条款,请谨慎使用,避免频繁操作导致账号受限。
  • 权限要求:运行脚本前,必须授予 Hamibot 无障碍服务权限和屏幕截图权限。

如果你需要更复杂的逻辑(如判断土地状态、处理弹窗),可以结合 colors 颜色判断或 ocr 文字识别功能进一步扩展。

ℹ️ 本回答由 AI 生成,内容仅供参考