按住pygame

时间:2017-08-08 14:54:18

标签: python pygame pyautogui

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

    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"我的代码将鼠标向左移动但是当我想在屏幕上移动鼠标时,我必须反复按下按钮。有没有办法能够按住并在屏幕上移动鼠标?我已经查看了有关此主题的其他教程,但它们看起来非常具体。

1 个答案:

答案 0 :(得分:2)

基本上,你要做的是设置一个变量,指示密钥在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)