Im Prinzip habe ich eine Schleife (tick, set_caption, screen_fill, event.get(), send_frame_event, flip, Wiederholung)Warum friert Pygame bei pygame.event.get() ein, wenn Sie das Fenster verschieben/ziehen?
Wenn ich aus dem Fenster um auf Windows 7 ziehen, die Schleife stoppt Looping, landete ich hochnäsig in pygame.event.get(), Ich habe versucht, bestimmte Ereignisse nur für get zB zu definieren get ([pygame.QUIT]) vergeblich.
Einfaches Aufrufen von pygame.event.clear() hat den gleichen Freeze-Effekt beim Ziehen/Verschieben des Fensters.
Gibt es eine Problemumgehung?
Nicht vollständiger Code, sollte aber genug sein:
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
vollständiger Code an: http://pastie.org/private/wm5vqq3f7xe0xlffy1fq
Es ist eine gute Praxis 'pygame.event's innerhalb einer while True Schleife im Hauptkörper zu setzen platzieren. – hjpotter92
Sie sind effektiv. Und das macht keinen Unterschied. Wenn du nicht in einem anderen Thread meinst? –