找做网站,大型网站建设部署方案,专业的集团网站设计网络,企业网站建设训所用工具环境python3.6.5 和 支持自动鼠标键盘点击等编程的pyautogui功能包windows PC#xff0c;安卓模拟器bluestacks#xff0c;安装王者荣耀基本思路王者荣耀有闯关任务模式可以获得金币#xff0c;任务两三分钟一般就可以完成#xff0c;支持自动模式#xff0c;一次…所用工具环境python3.6.5 和 支持自动鼠标键盘点击等编程的pyautogui功能包windows PC安卓模拟器bluestacks安装王者荣耀基本思路王者荣耀有闯关任务模式可以获得金币任务两三分钟一般就可以完成支持自动模式一次可获取三四十金币且可以重复刷取。利用脚本模拟任务开启点击进入后自动执行中间对话跳过最后任务完成检测再次启动任务。均是通过截屏信息获取当前在做什么然后应该点击什么如此往复执行。脚本所用关键功能说明网上有关于pyautogui包的使用的一些参考有一些是相对过期的功能接口调用存在些差别可以在安装pyautogui包后使用python doc 来查找相关API说明。pyautogui.screenshot 用于截屏。下面是py doc中函数原型可传入文件名最终返回截屏图片保存在本地screenshot _screenshot_win32(imageFilenameNone)pyautogui.locateOnScreen 用于查找局部图片位置(像素点区域位置)。输入图片文件名最终返回图片所在位置如果当前屏幕不存在该图片则返回NonelocateOnScreen(image, grayscaleFalse, regionNone)事先截取好中间需要点击的按钮图片保存在本地然后截屏中去匹配查找按钮图片是否存在及其位置(该函数实际并不需要事先调用screenshot)pyautogui.center 用于获取某一像素区域的中心像素点位置。center(coords)源文件pics中是事先截取的实际运行效果展示最开始选用最后一个关卡任务(大师级)下一步进入任务后再启用脚本后面就自动执行了录制过屏幕markdown下视频无法上传想制作gif来这的视频太大需要一定裁剪处理暂时不会。。源码展示很简单重在功能没有注重什么规范(业余python选手工作之中也是python用于内部工具开发,代码槽点可能较多)。# -*- coding: utf-8 -*-import pyautoguiimport timepyautogui.FAILSAFE Falsescreenshot pyautogui.screenshotpngLocate pyautogui.locateOnScreendef click(x,y):pyautogui.moveTo(x,y)pyautogui.click()def get_button_center_from_screen(button_png,png_pathpics):screen screenshot(screen.png)button_png png_path \\ button_pngstart_pos pngLocate(button_png)if start_pos None:#找不到buttonprint({} not exsit on current screen.format(button_png))return 0,0return pyautogui.center(start_pos)def AutoMouse():print(Start)n 1while(n60):print({now} 第{n}次\n.format(nowtime.strftime(%m-%d %H:%M:%S), nn))x, y get_button_center_from_screen(开始闯关.PNG)click(x,y)time.sleep(5)loading False#是否正在加载中while(1):x,y get_button_center_from_screen(加载中.PNG)time.sleep(3)if (x,y) ! (0,0):breakloading Falseprint(加载中\n)while(1):x,y get_button_center_from_screen(加载中.PNG)if (x,y) (0,0):breakprint(加载完成\n)#检查是否初始画面需要跳过x,y get_button_center_from_screen(跳过.PNG)if (x,y) (0,0):print(no need Jump over)else:print(need Jump over)click(x,y)#检查是否已经启用自动x,y get_button_center_from_screen(未启用自动.PNG)if (x,y) ! (0,0):print(not auto run)click(x,y)else:print(already auto run)#运行监测是否结束以及中间存在需要跳过结束则开启下一次 每5s检测一次while(1):time.sleep(3)x,y get_button_center_from_screen(跳过2.PNG)if (x,y) (0,0):print(no need Jump over)else:print(need Jump over)click(x,y)x,y get_button_center_from_screen(结束后继续.PNG)if (x,y) (0,0):print(not over)else:print(all over.\n)click(x,y)time.sleep(5)#start 闯关print(Start again)x, y get_button_center_from_screen(再次挑战.PNG)n n1click(x,y)time.sleep(10)breakif __name__ __main__:AutoMouse()注意事项脚本可能需要在管理员权限下执行(cmd启动时以管理员身份运行)(click执行没有效果的时候就是权限问题导致的)由于电脑尺寸可能不是绝对一样所以事先截取的按钮图片可能都不一样自行截取个人PC上实际王者荣耀刷任务运行时画面对应替换个人在使用过程中遇到过的问题有一次晚上挂机电脑死过机应该和这个没关系。。。安卓模拟器中的王者荣耀出现卡机(手动点击也是没有反应最后只好重启了模拟器)不知有没有关系加载图片 匹配不到原因是王者荣耀有更新任务开始后加载页面的广告有变化建议截取关键按钮时尽量截取小部分不要截取太多。后续可以做的更好日志记录实际运行情况出问题时方便回溯。利用图片识别技术来识别图片中的文字来找到对应按钮的位置。健壮性考虑如果中间偶尔出现卡机点击失效如何检测出来以及后续该怎么处理。当然需要更高的技术要求。喜欢且有相关能力的可以搞一下。欢迎留言交流 _