Python学习实用-利用adb实现游戏脚本

边学语言边写程序无疑是最好的,对于自己现在的情况就是想写一个阴阳师游戏脚本,因为阴阳师这个游戏重复动作太高,虽然推出了小纸人这个官方脚本但是感觉是杯水车薪,所以就在学python的时候写个阴阳师的脚本出来使用。

准备了雷电模拟器,然后在PyCharm上进行开发。

首先需要安装adb,教程网上都有,主要用到的方法是截屏获取图片对比和模拟鼠标点击

adb shell screencap -p  *.png//获取截屏
adb pull sdcard/*.png F:\* //将截屏发送到电脑目录下
adb shell input tap  //鼠标点击

python下的adb命令执行则是使用os来对命令行进行操作

os.system(*)  //执行命令行指令

假定阴阳师程序刚好结束了一场御魂,则此时界面应该是在御魂结算界面,我们则需要用adb进行屏幕图片获取,然后利用cv2来对图片进行对比,看是否为御魂结算界面,如果是则进行鼠标点击事件,退出御魂结算界面。
图片对比利用的是cv2自带的模板匹配,粗略来说就是将一张小图和大图进行对比,看小图图像是否在大图中出现。
那么我们就可以截取一个御魂结算界面的特征图片然后和获取的图片进行比对,没错,就是这个

img1代表待匹配图像, img2代表模板
res = cv2.matchTemplate(img1,template,cv2.TM_CCOEFF_NORMED) //图像模板匹配函数
maxres = res.max() //maxres大于0.9即可认为模板在匹配图像中出现

按照这个流程就可以写出大多数的游戏脚本了

目前我只写了百鬼,组队御魂和业原火,如果能参考我的代码的话其它的比如御灵也不难写出(当然bug应该有但是我还没发现,发现了会更新),代码在git上,地址:
https://github.com/IFrestart/YYS

  • 4
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值