回答
Hamibot 提供了多种屏幕点击功能,可以根据控件的文本、位置或图像特征进行点击操作。以下是核心方法和示例:
1. 基于控件的点击 (推荐)
通过识别屏幕上的文本或控件ID进行精准点击。
// 文档地址 https://docs.hamibot.com/
// 点击屏幕上第一个出现的"发送"按钮
click("发送");
// 点击第二个"确定"按钮(序号从0开始)
click("确定", 1);
// 通过控件属性定位(适用于复杂界面)
var btn = text("发送").findOne();
if(btn) btn.click();
2. 基于坐标的点击
直接点击屏幕指定坐标位置(需Android 7.0+):
// 点击坐标(500, 1000)
click(500, 1000);
// 长按坐标(300, 500)
longClick(300, 500);
注意:建议使用setScreenMetrics(width, height)设置基准分辨率,Hamibot会自动在不同设备上缩放坐标。
3. 基于图像识别的点击
通过识别屏幕上的特定图像模式进行点击:
// 截屏并查找特定颜色模式
var img = captureScreen();
var p = images.findMultiColors(img, '#0052CC', [[5,5,'#0052CC']]);
if(p) click(p.x, p.y);
使用建议:
- 优先选择控件点击:更稳定,不受分辨率影响
- 处理动态加载:配合
waitFor()或循环检测确保控件出现 - 图标点击:使用布局分析工具获取控件bounds区域进行点击
需要更具体的实现方案可以提供你的使用场景。
补充回答 1
Hamibot 提供多种方式实现屏幕连续点击(连点器)功能。以下是基于控件、坐标或图像的实现方法,适用于自动化任务如游戏挂机、快速操作等。
推荐方法:使用 press() 函数进行高效连续点击
press() 函数专为模拟快速连续操作设计,比循环调用 click() 更高效。适用于需要高速点击的场景(如游戏连点)。
// 文档地址 https://docs.hamibot.com/
// 模拟在坐标(500, 1000)处连续点击10次,每次间隔100毫秒
press(500, 1000, 10, 100);
参数说明:
x(Number): 点击的 x 坐标。y(Number): 点击的 y 坐标。times(Number): 点击次数,默认为1。duration(Number): 每次点击间的间隔时间(毫秒),默认为0。
替代方法:使用循环调用 click()(简单但较慢)
如果 press() 不可用或需要更自定义的控制,可以用循环实现,但注意点击速度可能较慢。
// 文档地址 https://docs.hamibot.com/
// 在坐标(500, 1000)处连续点击5次,每次间隔200毫秒
for (var i = 0; i < 5; i++) {
click(500, 1000);
sleep(200); // 控制点击间隔
}
基于控件的连续点击(更稳定)
通过识别屏幕上的文本或控件来点击,避免坐标变化问题。
// 文档地址 https://docs.hamibot.com/
// 循环点击屏幕上出现的"攻击"按钮10次
for (var i = 0; i < 10; i++) {
var btn = text("攻击").findOne();
if (btn) {
btn.click();
sleep(150); // 适当间隔以避免过快点击导致失败
} else {
toastLog("未找到按钮,停止点击");
break;
}
}
高级技巧:结合图像识别进行动态点击
如果界面元素位置变化,使用图像识别定位后点击。
// 文档地址 https://docs.hamibot.com/
// 请求截图权限
auto.waitFor();
if (!requestScreenCapture()) {
toastLog("没有截图权限");
hamibot.exit();
}
// 连续点击屏幕上某个图标5次
for (var i = 0; i < 5; i++) {
var img = captureScreen();
var p = images.findMultiColors(img, '#FF0000', [[10, 10, '#FFFFFF']]); // 根据颜色模式定位
if (p) {
click(p.x, p.y);
sleep(300);
} else {
toastLog("未找到目标,停止点击");
break;
}
}
注意事项:
- 性能优化:高速点击时,使用
press()避免卡顿;普通场景可用循环click()。 - 间隔控制:添加
sleep()避免点击过快被系统拦截或脚本失控。 - 错误处理:加入条件检查(如查找控件或图像),确保点击目标存在。
- 设备兼容性:坐标点击需 Android 7.0+,建议先用
setScreenMetrics(width, height)设置基准分辨率以适应不同屏幕。
如果需要更具体的配置(如点击频率、目标选择),可以提供你的使用场景(如游戏名称或应用),我会给出针对性建议。
ℹ️ 本回答由 AI 生成,内容仅供参考