Скрипт для игры Friday Night Funkin
Сделал скрипт для автоматического нажатия клавиш в игре Friday Night Funkin, во время когда ничего не нужно нажимать скорость скрипта примерно 0.001, но во время нажатия падает до 0.3, это из-за pydirectinput, есть keyboard, с ним скорость падает до 0.1 что мне бы подошло, но нажатия с keyboard или любого другого плагина кроме pydirectinput не читаются игрой, подскажите, как можно ускорить мой код? (У меня экран 1680х1050, и координаты пикселей я ставил под свой монитор при развернутой игре (не на весь экран))
import pyautogui as pg
from time import time, sleep
import numpy as np
from mss import mss
import pydirectinput as inp
import threading
import keyboard
while 1:
def get_color_rgb(x,y):
m = mss()
monitor = {
"left": x,
"top": y,
"width": 1,
"height": 1,
}
img = m.grab(monitor)
img_arr = np.array(img)
item = img_arr[0][0]
r = item[2]
g = item[1]
b = item[0]
return [r, g, b]
def check1(h):
if h==[194,75,153]:
inp.press('left')
def check2(j):
if j==[0,255,255]:
inp.press('down')
def check3(k):
if k==[18,250,5]:
inp.press('up')
def check4(l):
if l==[249,57,63]:
inp.press('right')
t1=threading.Thread(target = check1 ,args=(get_color_rgb(980,210),))
t2=threading.Thread(target = check2 ,args=(get_color_rgb(1120,210),))
t3=threading.Thread(target = check3 ,args=(get_color_rgb(1270,210),))
t4=threading.Thread(target = check4 ,args=(get_color_rgb(1410,210),))
ti1=time()
t1.start()
t2.start()
t3.start()
t4.start()
t1.join()
t2.join()
t3.join()
t4.join()
ti2=time()
print(ti2-ti1)
Ответы (1 шт):
Все решил, по итогу смог использовать модуль keyboard, но не через
keyboard.press_and_release('left')
а
keyboard.press('left')
time.sleep(0.05)
keyboard.release('left')
И так для всех 4 клавиш соответственно По итогу проблема исчезает почти полностью Оригинальную игру проходит на Харде без проблем, только 1 загвостка, код будет пропускать удержание клавиш там где это нужно, и когда я это исправлял код в целом становился очень медленным, ведь по сути количество операций возрастало вдвое, поэтому я решил что код не будет зажимать клавиши, ведь и так хорошо все проходит.