pygame python库中的pygame.event.wait()占用了100%的CPU
我在脚本中使用pygame.event.wait()函数来降低CPU使用率。 我在这里发现了这个想法: 此处的用法示例如下: 我试图找出函数无法按预期工作的原因,以及脚本中的错误在哪里:pygame python库中的pygame.event.wait()占用了100%的CPU,python,pygame,Python,Pygame,我在脚本中使用pygame.event.wait()函数来降低CPU使用率。 我在这里发现了这个想法: 此处的用法示例如下: 我试图找出函数无法按预期工作的原因,以及脚本中的错误在哪里: import pygame from pygame.locals import * import threading def read_keyboard(): pygame.event.clear() while True: event =
import pygame
from pygame.locals import *
import threading
def read_keyboard():
pygame.event.clear()
while True:
event = pygame.event.wait() # here we wait until user hits keyboard
player_input = ''
font = pygame.font.Font(None, 50)
if event.type == KEYDOWN:
if event.unicode == 'h':
player_input = 'hello'
elif event.type == QUIT:
return
read_keyboard_thread = threading.Thread(target = read_keyboard)
pygame.init()
screen = pygame.display.set_mode((480,360))
read_keyboard_thread.start()
这个问题似乎是由pygame如何处理声音引起的。CPU利用率似乎是pygame的一个已知问题,关于它有不同的帖子,特别是这篇文章帮助解决了这个问题: 我更新了代码,在pygame中禁用了一些混音器类,这很有帮助。我很幸运,在这个项目中不需要声音:-) 最后,如果需要混音器,建议从源代码处编译pygame来解决这个问题
“未按预期工作”实际问题是什么?问题是一旦启动应用程序,它将消耗100%的CPUyes。是我干的。是的。但我不确定它应该如何工作。如果我删除wait(),我会得到同样的结果CPU使用率100%你会得到无数的打印语句,还是只有一条是通过keypress得到的?2条是通过keypress得到的。等待前打印一次,等待后打印一次
53 pygame.init() # here we start all of the pygame stuff
54 pygame.mixer.quit()