ich muss für die Schule ein Spiel in Python mit Pygame schreiben. Das Programm an sich läuft auch ganz gut, allerdings habe ich das Problem, dass nach einigen Sekunden zwar scheinbar noch registriert wird, dass die Maus bewegt wird, das Programm auf Maus-Klicks allerdings niocht mehr reagiert

Am Ende des Quellcodes wird die Funktion main() aufgerufen. Über diese wird dann eine andere Funktion runde() aufgerufen, die dann wiederum mehrmals die Funktion turn() aufruft. anschliessend wird wiederum die Funktion runde() aufgerufen. meine event abfrage steht nun in der Funktion turn() die für den Benutzer scheinbar ständig aktiv ist, da die Funktion runde() nur aufgerufen wird, um sofort wieder die Funktion turn() aufzurufen.
Hier der Code für turn():
Code: Alles auswählen
def turn(spieleramzug,aktuellerunde): #wird jedes mal ausgefuehrt, wenn ein Spieler am Zug ist
zeigeinfosspiel(spieleramzug,aktuellerunde)
nochdran=1 #Variable, die fuer die Begrenzung der event-schleife erforderlich ist
while nochdran==1: #so lange dauert ein Zug
if pygame.event.get([MOUSEBUTTONDOWN]): #eventabfrage
for i in planeten.keys(): #bei einem Klick auf einen Planeten soll etwas passieren
if planeten[i]["besitzer"] == spieleramzug:
planetkoordy = planeten[i]["koordy"]
planetkoordx = planeten[i]["koordx"]
if (pygame.mouse.get_pos()[0] > planetkoordx and pygame.mouse.get_pos()[0] < planetkoordx+29 and pygame.mouse.get_pos()[1] > planetkoordy and pygame.mouse.get_pos()[1] < planetkoordy+29) :
nochdran=0 #runde wird beendet
zeigeinfosplanet(planeten[i],"ja")
for i in planeten.keys(): #bei einem Klick auf einen Planeten soll etwas passieren
if planeten[i]["besitzer"] == spieleramzug:
planetkoordy = planeten[i]["koordy"]
planetkoordx = planeten[i]["koordx"]
if (pygame.mouse.get_pos()[0] > planetkoordx and pygame.mouse.get_pos()[0] < planetkoordx+29 and pygame.mouse.get_pos()[1] > planetkoordy and pygame.mouse.get_pos()[1] < planetkoordy+29) :
zeigeinfosplanet(planeten[i])
return()

vielen dank für die hilfe im vorraus
