游戏中如何移动准星而非仅光标?Python AI瞄准器开发咨询
不移动系统光标实现游戏准星人脸锁定的方案
问题根源
你当前用win32api.mouse_event模拟鼠标移动,属于系统级输入操作,所以会同步带动桌面光标。要只控制游戏里的准星/视角,得用游戏专用的DirectInput输入模拟——绝大多数PC游戏都是用DirectInput处理玩家输入,不会受系统光标状态影响。
修正后的代码
利用你已经导入的pydirectinput库来实现游戏级鼠标移动,同时修正人脸识别的瞄准坐标(锁定人脸中心而非左上角),还优化了截图流程(不用存本地文件,速度更快):
import cv2 import numpy as np # 新增,用于格式转换 import pyautogui import pydirectinput from PIL import ImageGrab from pynput import keyboard def lock_face(): print('触发人脸锁定') # 直接截图并转成OpenCV可用格式,跳过存文件步骤 screenshot = ImageGrab.grab() frame = cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR) screenshot.close() gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml") faces = face_cascade.detectMultiScale( gray_frame, scaleFactor=1.3, minNeighbors=3, minSize=(30, 30) ) print(f"检测到 {len(faces)} 张人脸!") # 你的屏幕中心坐标(这里是1720x1080分辨率的中心,根据自己屏幕调整) screen_center_x = 860 screen_center_y = 540 for (x, y, w, h) in faces: # 计算人脸的中心坐标,而不是左上角 face_center_x = x + w // 2 face_center_y = y + h // 2 print(f"人脸中心位置: {face_center_x}, {face_center_y}") # 计算需要移动的偏移量 x_offset = face_center_x - screen_center_x y_offset = face_center_y - screen_center_y # 使用pydirectinput做相对移动,不会影响桌面光标 # duration控制移动时长,数值越小移动越快,也可以给偏移量乘系数调整速度 pydirectinput.moveRel(x_offset, y_offset, duration=0.01) # 绑定按键触发,比如按A启动锁定 def on_key_press(key): try: if key.char == 'a': lock_face() except AttributeError: pass # 启动按键监听 with keyboard.Listener(on_press=on_key_press) as listener: listener.join()
关键改动说明
- DirectInput模拟:
pydirectinput.moveRel()是专门针对游戏的输入模拟,只会被游戏的输入系统捕获,完全不会改变桌面光标的位置。 - 瞄准坐标修正:原来的代码用人脸左上角坐标计算偏移,现在改成人脸中心,确保准星真正锁定人脸。
- 截图效率提升:直接把
ImageGrab的截图转成numpy数组再转成OpenCV格式,省去了读写本地文件的时间,识别速度会快很多。 - 平滑移动控制:通过
duration参数可以调整准星移动的平滑度,也可以给偏移量乘以一个小于1的系数(比如x_offset * 0.6),避免准星突然跳变。
额外提示
- 只在和朋友游玩的私人局使用,避免触碰游戏的反作弊机制。
- 如果遇到游戏不响应
pydirectinput的情况,可以尝试开启pydirectinput.PAUSE = 0来减少输入延迟,或者调整游戏里的输入设置(比如关闭“Raw Input”)。 - 可以微调
detectMultiScale的参数,比如降低scaleFactor或者提高minNeighbors,来平衡人脸识别的准确率和速度。
内容的提问来源于stack exchange,提问作者malty fnbr
相关产品推荐
相关产品推荐

