如何让程序在不使用循环的情况下等待输入

1 投票
1 回答
2213 浏览
提问于 2025-04-17 18:36

我正在写一个Pygame程序,这个程序可以接受用户输入来创作音乐。它会等待特定的事件,比如键盘或鼠标输入,然后立即分析这些输入,而不需要用户每次都按回车键。

while (running == 1):
    for event in pygame.event.get():
# If event is a keypress
        if(event.type == pygame.KEYDOWN):
            key = pygame.key.get_pressed()  # get_pressed returns an boolean array
                                            # of every key showing pressed or not
# Find which key is pressed
            for x in range(len(key)):
                if(key[x] == 1):
                    break
# If a number key is pressed (0-9)
            if(x >= 48 and x <=57):
# Set the octave to keypress
                gui.setOctave(x-48)    # gui is an instance of a class 
                                       # that controlls pygame display

我知道的唯一方法就是使用无限循环。但这样做会占用几乎所有的CPU资源。有没有其他更有效的方法可以做到这一点,而不需要使用循环呢?

1 个回答

3

你可以使用 event = pygame.event.wait() 这个命令来等待一个事件的发生。

撰写回答