Pygame hängt sich bei while True: loop auf?

2 Antworten

Hab mir deine Frage jetzt nicht durchgelesen, nur so viel: Endlosschleifen sind in keiner Programmiersprache eine gute Idee, und fast immer ein Zeichen für einen Designfehler.

Die berechtigten Einsatzgebiete kann man an einer halben Hand abzählen.

Sorge am besten immer für sinnvolle Abbruchbedingungen! Mit Endlosschleifen werden genau solche Fehler auftreten, wie von dir erwähnt.

Woher ich das weiß:eigene Erfahrung
verreisterNutzer  02.10.2019, 18:40

danke für den Tipp. Aber das löst ja mein Hauptproblem nicht, das ich in der Frage erläutert habe. Hast du eine Idee, wie ich das zum laufen kriegen kann? Danke

0
(...) heißt es der Ammo? (...)

Verwende doch einfach verständliche, deutsche Begriffe.

Hier mein benötigter Code (...)

Die Syntax von Python erfordert bekanntermaßen eine korrekte Formatierung. Es macht daher keinen Sinn, sich deinen Snippet anzuschauen, denn dieser ist offensichtlich falsch eingerückt.

Wenn ich es in einen while True, loop packe, hängt sich pygame auf.

Das wird wohl daran liegen, dass bei Ausführung keine Abbruchbedingung greift. Irgendwann ist dann der Stack voll und das Programm hängt sich auf.

Ich denke, du dürftest dein Problem lösen können, indem du dir einen Debugger installierst und mit diesem einmal dein Programm analysierst. Lies dazu hier.

verreisterNutzer  04.10.2019, 09:53

Mein Code ist richtig formatiert, es sieht hier hat nicht so aus, weil es da beim copy und Pasten nach gutefrage.net irgendwie Probleme gab. Ach so, ja sorry ammo heißt Munition, mir ist der deutsche Begriff nicht eingefallen. Danke

0
verreisterNutzer  04.10.2019, 09:58

und irgendwie bringt der Debugger nichts, da 1. es mehrere files sind die zusammen hängen (wenn ich nur main.py Debugge findet er den Fehler nicht) und 2. läuft das Programm, nur kann ich halt nur einmal schießen und danach nicht mehr obwohl ich meine Munition auf 5 gesetzt habe

0
regex9  04.10.2019, 15:36
@verreisterNutzer

Du solltest natürlich nur den Bereich durchlaufen, in dem auch geschossen wird. Deine Breakpoints (mehrere sind möglich) kannst du frei verteilen.

Außerdem soll der Debugger dir keine Fehlermeldung liefern, sondern bei der Suche nach Logikfehlern helfen, da du durch ihn mit jedem Schritt durch den Code den Zustand aller Variablen zur Laufzeit sehen kannst. Genauso könntest du statische Fehleranalysen durchführen (bspw. im Kopf / mit Stift und Papier den Code durchgehen) oder mit Zwischenausgaben arbeiten.

1
verreisterNutzer  15.10.2019, 18:35
@regex9

Danke. Ich habe das Problem mittlerweile gelöst aber nochmals danke für die Erklärung des Debuggers.

0