如何让我的程序等待输入,而不是循环

时间:2013-03-10 20:04:36

标签: python pygame

我正在编写一个Pygame程序,它接受用户输入来编写音乐。它等待特定事件(即键盘或鼠标输入)并立即分析输入,而无需用户在每个条目中按Enter键。

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 个答案:

答案 0 :(得分:3)

您可以使用event = pygame.event.wait()等待活动。