我在脚本中使用pygame.event.wait()函数来降低CPU使用率。 我在这里找到了这个想法:
https://www.pygame.org/docs/ref/event.html#pygame.event.wait
以及此处的使用示例: Pygame waiting the user to keypress a key
我试图弄清楚为什么函数没有按预期工作以及脚本中的错误在哪里:
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()
答案 0 :(得分:1)
问题似乎是由pygame中的声音处理方式引起的。似乎CPU利用率是pygame的一个已知问题,并且有不同的帖子,特别是这个有助于解决问题:
https://github.com/pygame/pygame/issues/331
我更新了代码以禁用pygame中的某个混音器类,它有所帮助。我很幸运,在这个项目中不需要声音: - )
53 pygame.init() # here we start all of the pygame stuff
54 pygame.mixer.quit()
最后,如果需要混音器,有建议从源代码编译pygame