pygame.event.wait () в Python-библиотеке Python загружает 100% ЦП - PullRequest
0 голосов
/ 26 мая 2018

Я использую функцию pygame.event.wait () в скрипте, чтобы снизить нагрузку на процессор.Я нашел эту идею здесь:

https://www.pygame.org/docs/ref/event.html#pygame.event.wait

и пример использования здесь: Pygame ждет пользователя, чтобы нажать клавишу

Я пытаюсьчтобы выяснить, почему функция работает не так, как задумано, и где находится ошибка в скрипте:

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

1 Ответ

0 голосов
/ 27 мая 2018

Похоже, что проблема была вызвана тем, как звук обрабатывается в Pygame.Похоже, что загрузка процессора - это известная проблема с pygame, и о ней есть разные сообщения, особенно эта помогла решить эту проблему:

https://github.com/pygame/pygame/issues/331

Я обновил код, чтобы отключить некоторыекласс микшера в пигаме и это помогло.Мне повезло, что в этом проекте звук не нужен: -)

 53 pygame.init()    #  here we start all of the pygame stuff
 54 pygame.mixer.quit()

Наконец, есть рекомендации по компиляции Pygame из исходного кода для решения проблемы, если нужен микшер

https://github.com/pygame/pygame

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...