gpt4 book ai didi

python - 如何使用 python 在游戏中移动光标(例如 : First shooter shooting game)

转载 作者:行者123 更新时间:2023-12-01 21:36:17 25 4
gpt4 key购买 nike

我正在尝试使用 Python 构建一个自动化程序,使用 Opencv 来检测给定的颜色并使用 pyautogui 来实现自动化。我尝试使用 pyautogui 在游戏中移动光标但没有用。使用另一个库 pynput 有一些优势然后停止。我需要你的帮助!!!

这是我的代码:

import pyautogui as pg
import time
from PIL import ImageGrab
import numpy as np
import cv2
import keyboard
from pynput.mouse import Controller, Button

def clickAt(Mouse, x, y):
Mouse.position = (x, y)
Mouse.press(Button.right)
Mouse.click(Button.left)
time.sleep(2)
Mouse.release(Button.right)


#screen
x1, y1 = (200, 290)
x2, y2 = (1525, 800)

for i in range(50):

img = ImageGrab.grab(bbox=(x1, y1, x2, y2)) #bbox specifies specific region (bbox= x,y,width,height)
img_np = np.array(img)
frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2HSV)

#lower and higher of the color
lower = np.array([86, 179, 7])
upper = np.array([255, 255, 255])

mask = cv2.inRange(frame, lower, upper)

croped = cv2.bitwise_and(frame, frame, mask=mask)

res = cv2.bitwise_and(frame,frame, mask= mask)

#cv2.imshow("res",res)
cv2.imshow("mask", mask)
#cv2.imshow("frame", frame)

van = np.where(mask > 0)
#print(van)
x_van = van[1]
y_van = van[0]
time.sleep(5)

Mouse = Controller()
#clickAt(Mouse,100,100)

x_axis = van[1] + x1
y_axis = van[0] + y1

print(x_axis[5])
print(y_axis[5])

hit_pos = (x_van[0] + x1, y_van[1] + y1)

pg.moveTo(hit_pos)
clickAt(Mouse,100,100)
clickAt(Mouse,x_axis[5], y_axis[5])

#click the mouse
pg.click(hit_pos)
print('BIRD HIT at', hit_pos)

time.sleep(1)

cv2.waitKey(25)
time.sleep(3)
#cv2.destroyAllWindows()

最佳答案

我和你在同一个项目上工作,我发现下面的方法有效,但是,移动是坐标点,而不是 x,y 参数相对于你当前的鼠标位置移动

import win32api, win32con

win32api.mouse_event(win32con.MOUSEEVENTF_MOVE, x, y, 0, 0)

关于python - 如何使用 python 在游戏中移动光标(例如 : First shooter shooting game),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61915912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com