如何使用python控制鼠标在“msi app player”上玩游戏

c9qzyr3d  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(145)

我使用Python来控制鼠标在Android Emulator上做一些自动点击。我使用pyautogui和PyDirectInput来控制鼠标;然而,当鼠标移动到模拟器上时,click()函数运行但不工作,没有点击发生,也没有错误。
下面是点击函数和主循环:

import pyautogui as pi
import time
import pydirectinput as pyd

def click_shit(x, y):
    pyd.moveTo(x,y)
    for i in range(0,200,1):
        pyd.click()
        time.sleep(0.04)
  
def click_reload(x,y,x2,y2):
    pyd.moveTo(x,y)
    pyd.click()
    time.sleep(0.5)
    pyd.moveTo(x2,y2)
    pyd.click()  
while 1 :
     click_shit(x, y)
     time.sleep(3)
     click_reload(x,y,x2,y2)
     time.sleep(1)

字符串

dddzy1tm

dddzy1tm1#

我读了几遍你的代码,并自己测试了它,我不认为这是一个问题的书面代码。最有可能的是,怎么回事是pydirectinput无法访问Android模拟器,这可能是由多种原因造成的。根据我的经验,最好的方法是继续使用不同的模块。你提到使用pyautogui,尽管你在使用模块的时候没有发布代码(如果你发布代码来看看问题是否在那里会有帮助)。
正如在代码中所写的,在click_****(x, y)函数中,您有pyd.moveTo(x, y),它将鼠标移动到所需的坐标x和y。您必须在单击之前将鼠标移动到该位置,这是不可取的。Pyautoguiclick()函数,它允许您单击(x,y)坐标 * 而无需 * 先将鼠标移动到那里。当然,如果你真的想让鼠标移动,你可以使用pyautogui的moveTo()move()函数,它允许你将鼠标移动到特定的坐标,或者将鼠标移动一定数量的像素,这取决于鼠标所在的位置和与屏幕的相对位置。
将所有这些结合到代码中,这里有一个可能的解决方案:

import pyautogui as pi
import time

def click_****(x, y):
    for i in range(0,200,1):
        pi.click(x, y) #clicks at (x, y) coordinates
        time.sleep(0.04)

def click_reload(x,y,x2,y2):
    pi.click(x, y) #clicks at (x, y) coordinates
    time.sleep(0.5)
    pi.click(x2, y2) #clicks at (x2, y2) coordinates
while 1:
    click_****(x, y)
    time.sleep(3)
    click_reload(x,y,x2,y2)
    time.sleep(1)

字符串
但是,我不知道pyautogui是否能够访问您正在使用的平台,所以我决定包含另一个模块作为示例。Pynput允许控制和检测鼠标和键盘。
下面是一个示例的代码片段:

from pynput.mouse import Button, Controller
import time

mouse = Controller()

def click_****(x, y):
    mouse.position = (x, y) #sets mouse position to (x, y) coordinates
    for i in range(0,200,1):
        mouse.click(left, 1) #clicks once at current position
        time.sleep(0.04)

def click_reload(x,y,x2,y2):
    mouse.position = (x, y) #sets mouse position to (x, y) coordinates
    mouse.click(left, 1) #clicks once at current position
    time.sleep(0.5)
    mouse.position = (x2, y2) #sets mouse position to (x2, y2)
    mouse.click(left, 1) #clicks once at current position
while 1:
    click_****(x, y)
    time.sleep(3)
    click_reload(x,y,x2,y2)
    time.sleep(1)


这应该对你有用。当然,我知道这也会有问题,所以我知道还有另一个叫做mouse的python模块,它可以用来控制鼠标,但我不熟悉它。如果你想了解更多关于它的信息,或者我在这个答案中建议的任何其他事情,你应该看看我下面的链接。
Pyautogui:https://pypi.org/project/PyAutoGUI
Pynput:https://pypi.org/project/pynput
鼠标:https://pypi.org/project/mouse

相关问题