https://pymem.readthedocs.io/en/latest/api.html#py...не подойдет. Там требуется знать адрес, а мне нужно найти адрес.
Search a byte pattern given a memory location. Will query memory location information and search over until it reaches the length of the memory page. If nothing is found the function returns the next page location.
import numpy as np
import cv2
import pyautogui
import time
from PIL import ImageGrab
# здесь сделал функцию клика
# потому что pyautogui.click() не работает как надо в игре
def click(x, y):
pyautogui.moveTo(x, y)
pyautogui.mouseDown(button='left')
time.sleep(0.01)
pyautogui.mouseUp(button='left')
# тут ищется нота и когда программа рисует прямоугольник начитается вычисление
# позиций центра прямоугольника и производит клик по позиции
# а потом заново запускает себя чтобы искались други ноты
def finding(filename):
img = ImageGrab.grab(bbox=(280, 22, 1637, 1079))
img_bgr = np.array(img)
img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread(filename, 0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
threshold = 0.5
loc = np.where(res >= threshold)
for pt in zip(*loc[::-1]):
cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
for p in img_rgb:
x = pt[0] + w * 1.7
y = pt[1] + h / 1.7
pyautogui.moveTo(x, y)
click(x, y)
finding('note.png')
# здесь отсчет и нажатие на кнопку рестарт
time.sleep(10)
click(963, 535)
while True:
finding('note.png')