在触动精灵中精准获取屏幕坐标需通过抓抓工具手动取点、findcolorinregionfuzzy找色、tsfindtext识别文字或tslib调用本地ocr服务四种方式,其中安卓端不支持catchtouchpoint,必须校准缩放并适配设备分辨率。

在触动精灵中精准获取屏幕坐标是自动化操作的前提,坐标不准会导致点击错位、识别失败甚至脚本卡死。安卓端不支持catchTouchPoint函数,必须依赖图色识别或外部辅助工具完成坐标采集。
用“抓抓”工具手动取点(推荐新手)
第一步:启动按键精灵电脑版(注意——触动精灵安卓/iOS客户端无内置抓抓功能,必须用按键精灵的抓抓工具配合安卓设备使用)。打开后点击顶部菜单栏的【抓抓】按钮,图标是放大镜形状。
第二步:确保手机已通过USB连接电脑并开启USB调试,且触动精灵正在目标App前台运行。在抓抓窗口中切换到“图像”标签页,点击【截屏】按钮,此时会实时捕获手机当前屏幕画面。
第三步:鼠标悬停在截图上,左键单击目标位置(例如登录按钮中心),松开后弹出选项框,选择【添加到点1】。若需多个坐标,重复此操作依次添加为点2、点3……最多支持20个点。
第四步:在抓抓窗口右下角的“放大镜预览区”中核对坐标值,格式为X:187, Y:426。注意:【该坐标是PC端抓抓读取的原始像素值,未经过缩放适配,直接用于触动精灵脚本前必须用setScreenScale校准】。关闭抓抓后,这些坐标可复制进Lua脚本中使用tap(x, y)调用。
用findColorInRegionFuzzy自动找色定位
适用场景:界面元素颜色固定、背景变化小,比如红色确认按钮、蓝色技能图标。
方法一:单点找色(最常用)
先用截图工具或ADB命令获取目标点RGB值,例如0xFF3B5E。在脚本中写:x, y = findColorInRegionFuzzy(0xFF3B5E, 90, 0, 0, 1080, 2280)
其中90是相似度阈值,0,0,1080,2280是查找区域(按你设备分辨率调整)。
方法二:多点找色防误判
选取3个以上特征色点,记录它们之间的相对偏移。例如基准点颜色0x181F85,其右侧29像素处为0x00BBFE,下方-4像素处为0x0B6BBE,则写成:x, y = findMultiColorInRegionFuzzy(0x181F85, "29|1|0x00BBFE,103|-4|0x0B6BBE", 95, 0, 0, 1080, 2280)
这样即使按钮整体平移,也能稳定返回基准点坐标。
注意:安卓模拟器大多不支持该函数,真机测试前请确认引擎版本≥v1.1.9。
用tsFindText识别文字并返回坐标
第一步:准备字库文件dict.txt,用触动精灵点阵字库工具生成,然后加载:index = addTSOcrDict("dict.txt")
第二步:指定屏幕区域和偏色参数,查找文字左上角坐标:x, y = tsFindText(index, "确定", 100, 300, 500, 400, "FFFFFF,000000", 85)
这里x1=100,y1=300,x2=500,y2=400定义了搜索框范围,“FFFFFF,000000”是黑白双偏色,85是识别精度。
第三步:若需取文字中心点,用x = x + string.len("确定") * 12 / 2粗略估算(字体宽度按12像素/字),或改用tsOcrText配合findColor二次定位更可靠。
【关键前提:字库必须与当前界面字体、大小、抗锯齿状态完全匹配,否则返回-1,-1】
用TSLib扩展库调用本地OCR服务
第一步:在电脑启动Python OCR服务(如Umi-OCR),监听192.168.0.17:1224端口。手机和电脑必须在同一局域网。
第二步:在触动精灵脚本中用tsnet.httpPost发送截图base64数据到http://192.168.0.17:1224/api/ocr,接收JSON响应。
第三步:解析返回的text列表和坐标数组,取第一个结果的x1,y1,x2,y2,计算中心点:
cx = (x1 + x2) / 2<br>cy = (y1 + y2) / 2
这一步绕过了手机端OCR性能瓶颈,识别速度提升3倍以上,但依赖网络稳定性。Wi-Fi信号弱时可能超时返回空结果。











