基本的にループがあります (tick、set_caption、screen_fill、event.get()、send_frame_event、flip、repeat)
Windows 7 でウィンドウをドラッグすると、ループがループを停止し、pygame.event.get() でスタックしてしまいました。get([pygame.QUIT]) などの get([pygame.QUIT]) だけのために特定のイベントを定義しようとしましたが、役に立ちませんでした。 .
pygame.event.clear() を呼び出すだけで、ウィンドウをドラッグ/移動するときに同じフリーズ効果が得られます。
回避策はありますか?
完全なコードではありませんが、十分なはずです:
def start(self):
self.running = True
Clock = pygame.time.Clock()
while self.running:
self.p += 25
tickFPS = Clock.tick(self.fps)
pygame.display.set_caption("Press Esc to quit. FPS: %.2f" % (Clock.get_fps()))
self.screen.fill([self.p&0xFF,(255-self.p)&0xFF,255])
self.handleEvents()
self.raiseEvent("updateFrame")
pygame.display.flip()
def handleEvents(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
self.running = False