简体   繁体   English

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

[英]Key enable after another key was pressed before

I'm trying to make it so that pressing 'r' key will only work after the user pressed 'enter' anytime before.我正在尝试使按“r”键仅在用户之前任何时候按“输入”后才起作用。 But right now in #1 I can only press 'r' key if I'm holding 'enter' key.但是现在在#1中,如果我按住“输入”键,我只能按“r”键。 I tried in #2 but then the user can just press 'r' without pressing 'enter'.我在 #2 中尝试过,但用户可以直接按“r”而不按“输入”。

#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() 

It is very easy to do.这很容易做到。 First you need to create a new bool, for example pressed .首先,您需要创建一个新的布尔值,例如pressed And then set it to False .然后将其设置为False Then check if key enter is pressed.然后检查是否按下了键。 If it is then set bool pressed to True .如果它被设置 bool pressedTrue And then check if key r is pressed and if bool pressed is True .然后检查键 r 是否被按下,如果 bool pressedTrue So your code should look like this:所以你的代码应该是这样的:

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()

I hope it helped!我希望它有帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM