有人知道如何在python中记录鼠标的移动吗?

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

我一直在使用pygame跟踪鼠标的移动,我想知道是否有一种方法可以某种方式记录它们,以便我可以回放鼠标的位置。我正在尝试开发一种机器学习程序。这是我到目前为止的内容:

import pygame
import RPi.GPIO as GPIO
import time



servoPIN = 17
servoPIN2 = 27
GPIO.setmode(GPIO.BCM)
GPIO.setup(servoPIN, GPIO.OUT)
GPIO.setup(servoPIN2, GPIO.OUT)

p = GPIO.PWM(servoPIN, 50) # GPIO 17 for PWM with 50Hz
r = GPIO.PWM(servoPIN2, 50)
p.start(5.5)
r.start(5.5)



running = True
screen = pygame.display.set_mode((1200, 1200))
while running:
    event = pygame.event.poll()
    if event.type == pygame.QUIT:
        running = False

    elif event.type == pygame.MOUSEMOTION:
        (x,y) = event.pos
        print (x,y)
        d = float(x/100)
        f = float(y/100)
        p.ChangeDutyCycle(d)
        r.ChangeDutyCycle(f)
python machine-learning pygame raspberry-pi3
3个回答
0
投票

您可以将(x,y)位置存储在文件中。说。 mouseMovements.txt

此文件可由库pyautogui读取,然后可以播放鼠标。

import pyautogui

ifp = open("mouseMovements.txt", "r")

for line in ifp:
    x, y = line.strip().split(",")
    pyautogui.moveTo(x, y)

如果您需要更多帮助,请参阅详细文档。 https://pyautogui.readthedocs.io/en/latest/


0
投票

为什么没有鼠标位置列表。然后,您可以遍历它们。

而不是在移动鼠标时获取鼠标位置,而是可以在每一帧都获取它,因此,如果您在录制中等待,它将不会一直移动,而是会等待。

Mouse_recording = []
while running:
    MouseX, MouseY = pygame.mouse.get_pos()
    Mouse_recording.append((MouseX,MouseY))
    #do other stuff

这可能太快,给您太多点,所以您可以用pygame.time.Clock()设置fps>

Clock = pygame.time.Clock()
while running:
    Clock.tick(60) # stops the program from running more than 60 fps

0
投票

使用列表。您想存储用作输入ChangeDutyCycle的位置:

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