Задать вопрос

Как мне исправить бота для игры «osu!»?

Я уже полноть написал бота но есть проблемка. Когда он начинает кликать по кружкам, то бот делает это рано или поздно чем положено. Хотя я подоброл лучше всего скриншот(он в конце). Как это пофиксить, чтобы он нажимал когда этого требует игра?
Вот код с компьютерным зрением
import numpy as np
import cv2
import pyautogui
import time
from PIL import ImageGrab


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')

А вот note.png: 605aeb379e0b7724490369.png
  • Вопрос задан
  • 441 просмотр
Подписаться 4 Простой 11 комментариев
Решения вопроса 1
@Nikobraz
Сис.админ
чекай размер круга, когда примерно на половине, и калибруй задержку
делай сравнение не с полным кругом, а когда он начинает сжиматься, после этого вставляй sleep перед кликом и подбирай значение

from time import sleep
sleep(0.05)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы