按住 pygame

Press and hold for pygame

我在 python 2.7 中使用 pygame 和 pyautogui 在屏幕上移动鼠标。我的代码如下所示:

    import pyautogui
    import pygame
    pygame.init()
    pygame.display.set_mode()
    loop = True
    while loop:

         for event in pygame.event.get():
                if event.type == pygame.quit:
                    pygame.quit()
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_a:
                        pyautogui.moveRel(-50,0)

当我按下 "a" 时,我的代码将鼠标向左移动,但是当我想在屏幕上移动鼠标时,我必须反复按下按钮。有没有办法能够按住并在屏幕上移动鼠标?我看过关于这个主题的其他教程,但它们似乎非常针对特定项目。

基本上,您想要做的是设置一个变量,指示按键是否按下 keydown 并在按键打开时更新它。

在这里,我更新了你的代码来做到这一点,因为它可能更容易理解。

import pyautogui
import pygame
loop = True

a_key_down = False                                    # Added variable
while loop:

     for event in pygame.event.get():
            if event.type == pygame.quit:
                pygame.quit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_a:
                    a_key_down = True                 # Replaced keydown code with this
            if event.type == pygame.KEYUP:            # Added keyup
                if event.key == pygame.K_a:
                    a_key_down = False                
    if a_key_down:                                    # Added to check if key is down
         pyautogui.moveRel(-50,0)