之前按下另一个键后启用键

Key enable after another key was pressed before

我正在努力使按下 'r' 键仅在用户之前任何时候按下 'enter' 后才起作用。但是现在在#1 中,如果我按住 'enter' 键,我只能按 'r' 键。我在 #2 中尝试过,但用户可以只按 'r' 而无需按 'enter'。

#1
run = True  
while run:
    for event in pygame.event.get():  
        if event.type == pygame.QUIT:  
            run = False
    keys = pygame.key.get_pressed()
    if keys[pygame.K_RETURN] or [pygame.K_KP_ENTER]:
        print("Do something")
        if keys[pygame.K_r]:
            print("Do something")
    pygame.display.update()
pygame.quit() 

#2
run = True  
while run:
    for event in pygame.event.get():  
        if event.type == pygame.QUIT:  
            run = False
    keys = pygame.key.get_pressed()
    if keys[pygame.K_RETURN] or [pygame.K_KP_ENTER]:
        print("Do something")
    if keys[pygame.K_r]:
        print("Do something")
    pygame.display.update()
pygame.quit() 

这很容易做到。 首先,您需要创建一个新的 bool,例如 pressed。然后将其设置为False。然后检查是否按下了回车键。如果是,则将 bool pressed 设置为 True。然后检查键 r 是否被按下以及 bool pressed 是否为 True。 所以你的代码应该是这样的:

pressed = False
while run:
    for event in pygame.event.get():  
        if event.type == pygame.QUIT:  
            run = False
    keys = pygame.key.get_pressed()
    if keys[pygame.K_RETURN]:
        pressed = True
    if keys[pygame.K_r] and pressed:
        print("Do something")
    pygame.display.update()

希望对您有所帮助!