Wie verhindere ich es, dass sich mein Fenster in Pygame direkt wieder schließt?
Wenn ich in Pygame ein Fenster öffnen will, schließt es sich immer direkt wieder, egal was ich tue. Den Code für das Fenster schreibe ich in jedem Dokument so:
import pygame
pygame.init()
win = pygame.screen.set_mode((500,500))
Wenn man das startet öffnet sich das Fenster für 0,5 bis eine Sekunde und schließt sich direkt, selbst wenn dannach if-statemends kommen die auf Signale von Tasten warten wenn ihr versteht was ich meine😬
Danke im Voraus
2 Antworten
Erstmal ist der Code nicht richtig...
import pygame
pygame.init()
win = pygame.display.set_mode((500,500))
Das muss display und nicht screen sein.
Aber das Fenster müsste wenn du es richtig schreibst offen bleiben. Wenn nicht dann gibt es irgendwo eine Fehlermeldung in deiner IDE oder in der Konsole.
Welche IDE verwendest du?
Ich starte mein Programm über CMD und ich benutze Notepad++
Editier es mal mit der IDLE und starte es aus der IDLE raus.
Falls da immer noch keine Meldung erscheint dann nutz den Debugger und schau genauer nach wo das Programm abstürzt...
Da sich IDLE bei mir nicht installieren lässt habe ich es mit PyCharm versucht, aber auch das geht nicht☹️
Das es nicht geht ist klar - aber es muss eine Fehlermeldung geben oder du musst sich mit dem Debugger durchklicken bis das Programm an einer Stelle abstürzt.
Diese Art von Fehlersuche macht einen großen Teil der Arbeit eines Entwicklers aus.
Es gab keine Fehlermeldung, aber mittlerweile habe ich das Problem auf eine andere Weise gelöst.
Trotzdem vielen Dank für Ihre Mühe
Erstmal muss ich sagen, dass du dich nicht ernsthaft mit dem thema pygame befasst hast. Aber nicht böse gemeint.
Nachdem du dein Fenster erstellt hast, musst du es in iener schleeife laufen lassen, also:
import pygame
pygame.init()
win = pygame.display.set_mode((500, 500))
while True:
# Dein restlicher Code
Achtung!!!: Um das Fenster schließbar zu machen, brauchst du diese Code:
import pygame
pygame.init()
win = pygame.display.set_mode((500, 500))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit()
Stimmt, ich schreibe auch Display🤦 Aber ich bekomme keine Fehlermeldung, das schließt sich und mehr nicht