如何使用Python在游戏中移动目标

如何使用Python在游戏中移动目标,python,auto,aim,Python,Auto,Aim,我正在尝试创建一个玩CS:GO的AI 但我无法移动目标 我尝试了pyautogui、win32api、pynput库,所有这些库都可以在桌面或任何有光标的地方使用 但在游戏中并没有光标,当我跟随鼠标时,鼠标的位置停留在中间((1920/21080/2),对我来说)当移动鼠标旋转时,它会增加一小段时间,然后回到那个位置 如何在CS:GO或GTAV或python的任何游戏中移动aim。python代码和真正的鼠标有什么区别 我不认为这是因为反作弊,因为它没有工作的GTAV 我看了同样的话题,但它们并

我正在尝试创建一个玩CS:GO的AI

但我无法移动目标

我尝试了pyautogui、win32api、pynput库,所有这些库都可以在桌面或任何有光标的地方使用

但在游戏中并没有光标,当我跟随鼠标时,鼠标的位置停留在中间((1920/21080/2),对我来说)当移动鼠标旋转时,它会增加一小段时间,然后回到那个位置

如何在CS:GO或GTAV或python的任何游戏中移动aim。python代码和真正的鼠标有什么区别

我不认为这是因为反作弊,因为它没有工作的GTAV

我看了同样的话题,但它们并没有解决我的问题

所有库的代码类似,因此我使用的代码如下:

import pyautogui, sys
import _thread
import time

time.sleep(2)

def kaydir(miktarX, miktarY):
    pyautogui.moveRel(miktarX, miktarY)

print('Press Ctrl-C to quit.')
try:
    while True:
        x, y = pyautogui.position()
        positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
        print(positionStr, end='')
        print('\b' * len(positionStr), end='', flush=True)
        _thread.start_new_thread(kaydir, (1, 1))
        time.sleep(0.08)
except KeyboardInterrupt:
    print('\n')

首先,你问这个问题是什么意思

python代码和真正的鼠标有什么区别

但如果你想为任何游戏创建机器人,你有两个选择:

  • 内存黑客: 获取一些内存指针以更改输入标志等(通过作弊引擎等)

  • 模拟用户交互(您的方式): 如果您想使用PyAutoGUI进行交互,我认为这是一个很好的起点:

    我更喜欢的另一种方式是(正如您所提到的)WinAPI: 鼠标移动的C++实现(因为我不知道如何在Python中执行):

    intmain(){
    HWND tWin=FindWindow(“目标窗口”);
    如果(双){
    RECT RECT={0};
    GetWindowRect(双窗口和矩形);
    SetCursorPos(rect.right-180/*x偏移量*/,rect.bottom-300/*y偏移量*/);
    }
    返回0;
    }
    
    另外,如果您的程序是64位,请确保使用64位WinAPI

    如果您的游戏在更高权限下运行,您需要以管理员或系统管理员的身份运行您的机器人

    但是我认为要创建一个bot,你还需要内存黑客(只是阅读)来获取玩家的位置等,因为从程序员的角度来看,你如何从游戏屏幕图像中提取位置项等?。你也可以使用机器学习,但对于一个游戏来说,它需要一个巨大的训练过程


请发布一些代码。谢谢是我的错。我试图解释为什么我可以用鼠标移动aim,但不能用pyautogui之类的python函数。moveRel()我从游戏中读取帧并根据它生成一些输出。这里是我的问题更清楚:秒开始22看起来你必须首先点击进入CS:GO窗口获得焦点,然后再移动鼠标