Also...
Wir müssen für Informatik ein Programm mit dem Schwerpunkt TKinter erstellen. Da wir gerade erst mit OOP angefangen haben und bei einem 1vs1-player fight Spiel sich ebendiese Art der Programmierung anbietet, haben wir uns dafür entschieden unser Spiel objektorientiert zu programmieren (kann man das so sagen? xD).
Naja...
Da gibt es zum einen die Möglichkeit, dass die Spielfiguren auf Knopfdruck reagieren, aber dabei stockt die bewegung immer, wenn man zum Beispiel die Richtung ändert, also wollten wir in nem neuen Thread eine zählschleife einbauen, die praktisch prüft, was grad gedrückt ist und jenachdem reagiert, weil wir uns dachten, dass es dann nicht so stocken müsste wie bei Variante 1.
So...
Also diese Schleife funktioniert irgendwie nicht...
Runtime error, bevor die Funktion im neuen Thread überhaupt ein einziges mal was gemacht hat...
Wieso ist das so?
Wie kann ich das beheben?
Oder eine noch viiiiiel bessere Frage:
Wie kann man das noch praktischer umsetzen, dass es nicht stockt? (ich hoffe, das geht überhaupt...)
Hier ist das Spiel, an dem wir gerade arbeiten (+ 6 Bilddateien):
http://www.repage7.de/memberdata/dfslas ... jas.py.txt (Ansicht)
http://www.file-upload.net/download-237 ... (Download)
Und hier ein Testprogramm, wo es stockt (Variante 1)
http://www.file-upload.net/download-237 ... t.rar.html
Vielen Dank schonmal im Voraus
~Twitchy
Jump'n'Run mit TKinter
[i]Wir alle leben gebunden an was wir als "richtig" und "wahr" erachten. So definieren wir "Wahrheit". Doch das ist nichts weiter als ein vages Konzept... vielleicht nur Einbildung. Eigentlich leben wir doch alle in unserer eigenen Welt, geprägt von unseren Überzeugungen...[/i]
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Na klingt ja super ...Twitch hat geschrieben:Also diese Schleife funktioniert irgendwie nicht...
Runtime error, bevor die Funktion im neuen Thread überhaupt ein einziges mal was gemacht hat...
Gelesen hast du die Fehlermeldung nicht zufaellig ...
Die sind meist hilfreich.
Und wenn du damit nichts anfangen kannst, dann poste sie wenigstens.
Code in Zukunft bitte auf code.pocoo.org (oder in einer anderen Pastebin mit Syntaxhighlighting).
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Tja, das ist ja das eigentliche Problem: Die Fehlererkennung, weil die Shell gibt mir gar keine Fehlermeldung aus, stattdessen kommt die ach-so-bekannte "terminated runtime in an unusual way"-Windows-Meldung.
Ich dachte, dass es vielleicht daran liegt, dass es ne Endlosschleife ist, aber mit dem timer müsste das doch eigentlich gelöst sein...
Und dazu kommt noch, dass ich nur das Widget + canvas bekomme (die Klasse "Battleground" funktioniert also noch), aber von der Zählschleife im neuen thread krieg ich nichtmal EIN einziges Bild...
Ich dachte, dass es vielleicht daran liegt, dass es ne Endlosschleife ist, aber mit dem timer müsste das doch eigentlich gelöst sein...
Und dazu kommt noch, dass ich nur das Widget + canvas bekomme (die Klasse "Battleground" funktioniert also noch), aber von der Zählschleife im neuen thread krieg ich nichtmal EIN einziges Bild...
[i]Wir alle leben gebunden an was wir als "richtig" und "wahr" erachten. So definieren wir "Wahrheit". Doch das ist nichts weiter als ein vages Konzept... vielleicht nur Einbildung. Eigentlich leben wir doch alle in unserer eigenen Welt, geprägt von unseren Überzeugungen...[/i]
@Twitch: Vergiss in diesem Zusammenhang am besten das es Threads gibt. Das wird mit GUIs in dieser Art nicht funtkionieren, weil man die GUI immer nur von dem Thread aus verändern darf, in dem die `mainloop()` läuft.
Für Aktionen die Regelmässig passieren sollen, ohne das Interaktion vom Benutzer erfolgt, ist bei `Tkinter` die `after()`-Methode auf Widgets zuständig.
Die Sternchenimporte solltest Du auch sein lassen. Ebenso wie die trivialen Getter- und Setter-Methoden.
Für Aktionen die Regelmässig passieren sollen, ohne das Interaktion vom Benutzer erfolgt, ist bei `Tkinter` die `after()`-Methode auf Widgets zuständig.
Die Sternchenimporte solltest Du auch sein lassen. Ebenso wie die trivialen Getter- und Setter-Methoden.
Danke, die after()-methode schau ich mir mal genauer an.
Wie ihr sehen könnt, ist das sowieso erst ein Prototyp im frühen Anfangsstadium. Was ich nachher nicht brauche kommt eh weg. ^^
Vielen Dank für den Tipp.
~Twitchy
Wie ihr sehen könnt, ist das sowieso erst ein Prototyp im frühen Anfangsstadium. Was ich nachher nicht brauche kommt eh weg. ^^
Vielen Dank für den Tipp.
~Twitchy
[i]Wir alle leben gebunden an was wir als "richtig" und "wahr" erachten. So definieren wir "Wahrheit". Doch das ist nichts weiter als ein vages Konzept... vielleicht nur Einbildung. Eigentlich leben wir doch alle in unserer eigenen Welt, geprägt von unseren Überzeugungen...[/i]
Take it easy Mates!
Danke für die Hilfsbereitschaft. ^^
[i]Wir alle leben gebunden an was wir als "richtig" und "wahr" erachten. So definieren wir "Wahrheit". Doch das ist nichts weiter als ein vages Konzept... vielleicht nur Einbildung. Eigentlich leben wir doch alle in unserer eigenen Welt, geprägt von unseren Überzeugungen...[/i]
Ich auch nicht. Seit wann steht ^^ für Sarkasmus und nicht für einen einfachen "Smiley"!?