一、目的
《Python从入门到实践》第14章拉拉杂杂“抄”完,急于练手,便捡起以前一直想写却没写完的“鼠标键盘模拟”程序。
二、思考
图1.0 auto_game思考方向
如图1.0,思考了两种实现方法。
第一种方法是在电脑层面模拟电脑鼠标点击。使用pyautogui库实现之后,MUMU模拟器内运行游戏并未做出相应反应。更换20180111版本MUMU,仍然不成功。如果仍想采用这种思路,就需要更换模拟器软件,或者采用驱动级鼠标键盘模拟。
第二种方法通过adb(Android Debug Bridge)操作管理andriod设备。下面对第二种方法予以讨论。
(一)模拟过程
如图1.1所示,明日方舟1-7刷图可以分为三个部分:开始(①、②)、等待(③)、结束(④)。
图1.1 1-7刷图过程
1.开始阶段(①、②)
需要在两个特定位置(“开始行动”)点击两次。
2.等待阶段(③)
需要等待一段时间。
3.结束阶段(④)
需要在除“获得物品”之外的其他地方点击一次。
(二)实现思路
1.判断当前游戏阶段
使用adb命令截图,cv2判断特定图形出现在截图中的可能性,超过阈值,即为出现特定场景。
2.特定场景时发出点击命令
3.点击位置伪随机
4.点击时间间隔伪随机
5.特殊情况
开始阶段的①、②两图需要点击的按钮范围存在重合部分。可以将两次独立的判断后