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

问题描述 投票:0回答:1

我正在使用Python来控制鼠标在Android模拟器上进行一些自动点击。我正在使用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) 
python android-emulator mouse pyautogui
1个回答
0
投票

你的代码我看了几遍,并且自己测试了一下,我不认为是写的代码有问题。最有可能发生的情况是

pydirectinput
无法访问 Android 模拟器,这可能是由多种原因引起的。根据我的经验,继续前进的最佳方法是使用不同的模块。您提到使用
pyautogui
,尽管您在使用该模块时没有发布代码(如果您发布代码以查看问题是否在那里,将会有所帮助)。

如代码中所写,在

click_****(x, y)
函数中,您有
pyd.moveTo(x, y)
,它将鼠标移动到所需的坐标 x 和 y。您必须将鼠标移动到单击之前的位置,这是不可取的。
Pyautogui
具有
click()
功能,可让您单击 (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

© www.soinside.com 2019 - 2024. All rights reserved.