首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pynput在随机位置自动单击鼠标(用于web浏览器游戏)

使用pynput在随机位置自动单击鼠标(用于web浏览器游戏)
EN

Stack Overflow用户
提问于 2020-05-06 13:32:16
回答 1查看 496关注 0票数 2

信息.

嘿,那里:)

我已经学了几个星期的Python了,我刚开始做一些小项目。现在我正在构建一个脚本来自动化一个网络浏览器游戏。剧本发出了一些“远征”,让我在游戏中获得了更多的机会。这个脚本已经开始工作了,但是我想改进它。如果你有什么建议的话,我很想听听。

问题.

--我使用pynput和mouse.position = ()来精确地单击位置。有没有办法使点击随机在某一区域?,因为正常人不能总是点击在同一地点。

就像在这些位置之间随机点击: mouse.position (2000,500) mouse.position (3000,1000)

我的剧本.

代码语言:javascript
复制
import pynput, time, random, sys
from pynput.keyboard import Key, Controller as KeyboardController
from pynput.mouse import Button, Controller as MouseController
timeDelay = random.randrange(2, 4)


def locateogame():
    #---------------------------------------------> Getting to Ogame.nl
    mouse = MouseController()
    keyboard = KeyboardController()
    mouse.position = (2392, 48)
    mouse.click(Button.left, 1)
    time.sleep(timeDelay)
    keyboard.type("Ogame.nl")
    keyboard.press(Key.enter)
    keyboard.release(Key.enter)
    #login to account and universe.
    time.sleep(timeDelay)
    mouse.position = (2343, 564)
    mouse.click(Button.left, 1)

def p1():
    #---------------------------------------------> Locate to planet 1
    mouse = MouseController()
    time.sleep(timeDelay)
    mouse.position = (3054, 298)
    mouse.click(Button.left, 1)

def p2():
   #---------------------------------------------> Locate to planet 2
    #Locate to 5:352:8
    mouse = MouseController()
    time.sleep(timeDelay)
    mouse.position = (3060, 382)
    mouse.click(Button.left, 1)

def p3():
    #---------------------------------------------> Locate to planet 3
    #Locate to 5:353:7 
    mouse = MouseController()
    time.sleep(timeDelay)
    mouse.position = (3074, 438)
    mouse.click(Button.left, 1)

def p4():
    #---------------------------------------------> Locate to planet 4
    #Locate to 5:353:8 
    mouse = MouseController()
    time.sleep(timeDelay)
    mouse.position = (3073, 481)
    mouse.click(Button.left, 1)

def p5():
    #---------------------------------------------> Locate to planet 5
    #Locate to 4:32:8 
    mouse = MouseController()
    time.sleep(timeDelay)
    mouse.position = (3099, 538)
    mouse.click(Button.left, 1)

def Sending():
#---------------------------------------------> This will do all the clicking to send my ships
    mouse = MouseController()
    keyboard = KeyboardController()
    #Select Fleet from menu
    time.sleep(timeDelay)
    mouse.position = (2254, 493)
    mouse.click(Button.left, 1)
    #select "Expeditie" Fleet
    time.sleep(timeDelay)
    mouse.position = (2670, 694)
    mouse.click(Button.left, 1)
    #Expedition
    time.sleep(timeDelay)
    mouse.position = (2598, 743)
    mouse.click(Button.left, 1)
    time.sleep(timeDelay)
    mouse.position = (2954, 678)
    mouse.click(Button.left, 1)
    #select slot 16
    time.sleep(timeDelay)
    mouse.position = (2796, 434)
    mouse.click(Button.left, 1)
    keyboard.type("16")
    keyboard.press(Key.enter)
    keyboard.release(Key.enter)
    #expeditie button
    time.sleep(timeDelay)
    mouse.position = (2408, 378)
    mouse.click(Button.left, 1)
    #send Fleet
    time.sleep(timeDelay)
    mouse.position = (2862, 711)
    mouse.click(Button.left, 1)


##---------------------------------------------> Start of the script.
locateogame()

fns = [p1, p2, p3, p4, p5]
from random import choice
choice(fns)()

Sending()

谢谢您抽出时间,祝您今天愉快!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-06 13:34:29

您可以使用random.randint从范围中取样一个值。只需做两次,一次是你的X值,另一次是Y

代码语言:javascript
复制
>>> import random
>>> random.randint(2000, 3000)
2786
>>> random.randint(500, 1000)
838

所以在你的代码中你可以

代码语言:javascript
复制
from random import randint
mouse.position = (randint(2000, 3000), randint(500, 1000))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61636521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档