Мышь не зарегистрирует движение, пока я ее не передвину - PullRequest
1 голос
/ 20 июня 2020

Я делаю бота для кулинарной игры roblox. Одна из задач требует, чтобы вы двигали мышью влево и вправо. Я попытался добиться этого с помощью функции moveTo pyauto gui и некоторой продолжительности перемещения, когда я запускал код, казалось, что он ничего не делает, но когда я перемещал мышь, он перемещался. Я тестировал код вне игры, и он работал отлично. Казалось, что всякий раз, когда я не касаюсь своей мыши, положение моей мыши не обновляется, я попытался использовать другую библиотеку, и произошло то же самое. Вот код. Спасибо!

from directinput import PressKey, ReleaseKey
from PIL import ImageGrab, ImageOps
from time import sleep as s
from sys import exit
import numpy as np
import pyautogui

readout_box = (965, 970, 1016, 1010)

up = 419748
down = 419735
left = 420259
right = 420092

left_right = 397608
up_down = 399616

space = 448674

click = 385930

def main():
    print(get_sum())

    if get_sum() == left or get_sum() == 428588:
        Press(0x1E)
        print("Left")
    elif get_sum() == right or get_sum() == 425290:
        Press(0x20)
        print("Right")
    elif get_sum() == down or get_sum() == 431363:
        Press(0x1F)
        print("Down")
    elif get_sum() == up:
        Press(0xC8)
        print("Up")
    elif get_sum() == space:
        keySpam(0x39)
        print("Spamming Space")
    elif get_sum() == click:
        clickSpam()
        print("Spamming Click")
    elif get_sum() == left_right:
        leftRight()
        print("Left Right")
    elif get_sum() == up_down:
        upDown()
        print("Up Down")
    elif get_sum() == 345939:
        print("Day Complete!")
        exit()

def get_sum():
    img = ImageGrab.grab(readout_box)
    gray = ImageOps.grayscale(img)

    sum = np.array(gray).sum()

    return sum

def Press(keyCode):
    PressKey(keyCode)
    s(0.1)
    ReleaseKey(keyCode)

def keySpam(keyCode):
    for i in range(15):
        Press(keyCode)

def clickSpam():
    for i in range(10):
        pyautogui.leftClick()

def leftRight():
    pyautogui.moveTo(1600, 515)
    for i in range(3):
        pyautogui.moveTo(350, 560, 1)
        pyautogui.moveTo(1600, 515, 1)

def upDown():
    pyautogui.moveTo(900, 160)
    for i in range(3):
        pyautogui.moveTo(900, 900, 1)
        pyautogui.moveTo(900, 160, 1)

s(1)

while True:
    main()
    s(0.5)
...