python3 游戏挂机脚本
2021/4/14 20:55:25
本文主要是介绍python3 游戏挂机脚本,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
import pyautogui import numpy as np import PIL import pytesseract from PIL import Image import time import cv2 import os import keyboard # find_list = ['img/wait.jpg', 'img/end.jpg'] genting_list = ['img/Genting/start.bmp', 'img/Genting/commit.bmp', 'img/Genting/exit.bmp', 'img/Genting/next.bmp'] equip_list = ['img/Genting/equip1.bmp', 'img/Genting/equip2.bmp'] def find_on_template(target, template): theight, twidth = target.shape[:2] result = cv2.matchTemplate(target, template, cv2.TM_SQDIFF_NORMED) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) # 如果匹配度小于99%,就认为没有找到。 if min_val > 0.1: return None strmin_val = str(min_val) # print(strmin_val) x = min_loc[0] + twidth // 2 y = min_loc[1] + theight // 2 return x, y def get_position(image): # target = cv2.imread("target.jpg") target = pyautogui.screenshot() target = np.array(target) template = cv2.imread(image, dtype=np.uint8) # 获得模板图片的高宽尺寸 theight, twidth = template.shape[:2] # 执行模板匹配,采用的匹配方式cv2.TM_SQDIFF_NORMED result = cv2.matchTemplate(target, template, cv2.TM_SQDIFF_NORMED) # 归一化处理 cv2.normalize(result, result, 0, 1, cv2.NORM_MINMAX, -1) # 寻找矩阵(一维数组当做向量,用Mat定义)中的最大值和最小值的匹配结果及其位置 min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) return min_loc[0] + twidth / 2, min_loc[1] + theight / 2 def find_and_click(target_dir, left_or_right): screen_img = pyautogui.screenshot() screen_img = cv2.cvtColor(np.asarray(screen_img), cv2.COLOR_RGB2BGR) target = cv2.imread(target_dir) position = find_on_template(target, screen_img) if position is not None: if left_or_right: pyautogui.moveTo(position[0], position[1]) pyautogui.mouseDown() time.sleep(0.1) pyautogui.mouseUp() else: pyautogui.rightClick(x=position[0], y=position[1]) # pyautogui.moveTo(position[0], position[1]) # pyautogui.click() return True return False def auto_genting(): switch_on = False cards_list = make_img_list('img/Genting/cards') screenWidth, screenHeight = pyautogui.size() while True: if keyboard.is_pressed('f5'): print('开始!') switch_on = True elif keyboard.is_pressed('f6'): print('结束!') switch_on = False if switch_on: pyautogui.moveTo(screenWidth/2, screenHeight/2) # 开始or结束 for each in genting_list: find_and_click(each, True) # 装备 for each in equip_list: find_and_click(each, False) # 搜牌 for each in cards_list: find_and_click(each, True) # 时间节点 def make_img_list(img_dir): res = [] for root, dirs, files in os.walk(img_dir): for file in files: res.append(os.path.join(root, file)) return res if __name__ == '__main__': auto_genting() # main()
这篇关于python3 游戏挂机脚本的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python