私はグラフィックアプリケーションでいくつかのビデオ計算とマウスイベントリスニングを含むpygameを使っています。私はラズベリー3、raspbian jessieとpython2.7を使用しています。Pygame:CPU負荷が高い場合にイベントが表示されない
タイトルが言ったように、私はいくつかのマウスイベントを失っています。特に、CPU負荷が高い場合は特にそうです。私はこの小さなexempleでこの現象を再現するために管理:
import pygame
import time
pygame.init()
pygame.display.set_caption('Crash!')
window = pygame.display.set_mode((300, 300))
running = True
Rectplace = pygame.draw.rect(window, (255, 0, 0),(100, 100, 100, 100))
pygame.display.update()
while running:
time.sleep(0.1)
for event in pygame.event.get():
print(`event`)
if event.type == pygame.QUIT:
running = False
このスクリプトを実行すると、マウスホイールイベント(ボタン4 & 5)の大半は、高速ロールで廃棄されています。 CPUの負荷をシミュレートするtime.sleep(0.1)
を削除すると、イベントリスナーは完全に信頼できるものになります。
遅い計算部分を削除することはできませんし、さらに最適化することもできないので、これらのイベントを取り戻すにはどうすればよいですか?
あなたの脳を共有していただきありがとうございます!
イベントのスレッド化とキュー? –