继上一个yys脚本后又写了一个剑与远征的小脚本
今天刚写的 用了一会 感觉还不错 虽然功能单一 但是还是很稳定所以就拿来和大家分享一下 不多bb 上代码
import os
import cv2
import random
import time
class Settings():
def __init__(self):
self.start1_x = [470, 630]
self.start1_y = [1640, 1680]
self.start15_x = [470, 630]
self.start15_y = [1440, 1515]
self.start2_x = [400, 600]
self.start2_y = [1800, 1855]
self.end_x = [129, 300]
self.end_y = [1620, 1740]
s = Settings()
class Y_function(object):
def get_screen(self):
cmd_get = 'adb shell screencap -p /sdcard/img000.png'
cmd_send = 'adb pull sdcard/img000.png ./JYYZimg'
os.system(cmd_get)
os.system(cmd_send)
img = cv2.imread('./JYYZimg/img000.png', 0)
return img
def match(self, img1, template):
"""img1代表待匹配图像, template代表模板, 模板是小图"""
res = cv2.matchTemplate(img1, template, cv2.TM_CCOEFF_NORMED)
maxres = res.max()
return maxres
def get_randxy(self, x, y):
"""产生一个在x,y二维区域内的随机位置,x,y为两个元素的列表,变量范围"""
xc = random.randint(x[0], x[1])
yc = random.randint(y[0], y[1])
return xc, yc
def get_randtime(self, a, b):
"""产生a,b间的随机时间延迟"""
time.sleep(random.uniform(a, b))
def click(self, x, y):
"""输入两个二维列表,表示要点击的位置的x坐标,y坐标"""
cmd_click = 'adb shell input tap {} {}'.format(x, y)
os.system(cmd_click)
def perform_click(self, x_range, y_range):
xc, yc = self.get_randxy(x_range, y_range)
self.click(xc, yc)
def begin(self):
t_start1 = cv2.imread('./JYYZimg/img01.png', 0)
t_start15 = cv2.imread('./JYYZimg/img015.png', 0)
t_start2 = cv2.imread('./JYYZimg/img02.png', 0)
t_end = cv2.imread('./JYYZimg/img03.png', 0)
return t_start1,t_start15, t_start2, t_end
def matchT(self, t_start1,t_start15, t_start2, t_end):
while True:
time.sleep(2)
img1 = self.get_screen()
res1 = self.match(img1, t_start1)
res15 = self.match(img1, t_start15)
res2 = self.match(img1, t_start2)
res3 = self.match(img1, t_end)
if res15 > 0.97:
self.perform_click(s.start15_x, s.start15_y)
elif res1 > 0.97:
self.perform_click(s.start1_x, s.start1_y)
elif res2 > 0.97:
self.perform_click(s.start2_x, s.start2_y)
elif res3 > 0.97:
self.perform_click(s.end_x, s.end_y)
else:
time.sleep(2)
print('匹配失败等待四秒')
if __name__ == '__main__':
Y = Y_function()
t_start1, t_start15, t_start2, t_end = Y.begin()
Y.matchT(t_start1,t_start15, t_start2, t_end)
附上图片:
img01.png
img015.png
img02.png
img03.png
创建与代码平级的目录JYYZimg 把四张图放进去 名字对应保存就可以用了 如果是adb或cv2的问题可以去看我写的yys脚本那个博客 里面都有记录
带走的哥哥们记得给个赞
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)