Python在线老虎机点击机器人指定次数点击失效问题求助
解决Python老虎机机器人点击次数不达预期的问题
你的问题出在只提前获取了一次按钮位置,之后的循环点击都是在同一个位置重复点击,但此时转盘已经转动,按钮已经消失,后续点击实际无效,看起来就像只执行了一次点击。
问题根源
原代码逻辑存在致命缺陷:
- 先调用
findButton()获取一次按钮位置 - 然后在
clickButton()里连续点击5次这个固定位置
但老虎机转盘转动时按钮会消失,停止后才会重新出现,之前的按钮位置已经失效,后续点击根本没命中有效按钮。
修正方案
需要把「查找按钮+点击」的逻辑放到循环里,每次点击后等待转盘停止、按钮重新出现,再进行下一次操作,同时处理按钮未找到的情况避免报错:
import pyautogui import time def main(): # 循环执行指定点击次数 for _ in range(5): # 等待按钮出现并获取位置 button_point = wait_for_button() if button_point: # 点击找到的按钮 pyautogui.click(button_point) # 等待转盘转动完成(可根据游戏实际速度调整时长) time.sleep(3) def wait_for_button(): # 循环查找按钮,直到找到或超时 timeout = 30 # 超时时间,单位秒 start_time = time.time() while time.time() - start_time < timeout: button_location = pyautogui.locateOnScreen('kronosunleashed.png', confidence=0.40) if button_location: return pyautogui.center(button_location) # 未找到时短暂等待,降低CPU占用 time.sleep(0.5) print("超时未找到按钮") return None if __name__ == "__main__": main()
关键修改点
- 将点击循环移到
main()中,每次循环都重新查找按钮位置,适配按钮消失后重新出现的场景 - 新增
wait_for_button()函数,循环等待按钮出现,避免因按钮未加载完成导致的定位失败 - 添加
time.sleep()等待转盘转动完成,给按钮重新出现留足够缓冲时间(可根据游戏实际速度调整) - 增加超时逻辑,防止程序因按钮长期不出现而无限等待
内容的提问来源于stack exchange,提问作者Sarah N
相关产品推荐
相关产品推荐

