Jump'n'Run mit TKinter

Fragen zu Tkinter.
Antworten
Twitch
User
Beiträge: 4
Registriert: Dienstag 23. März 2010, 19:54
Wohnort: Berlin

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
[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]
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Twitch hat geschrieben:Also diese Schleife funktioniert irgendwie nicht...
Runtime error, bevor die Funktion im neuen Thread überhaupt ein einziges mal was gemacht hat...
Na klingt ja super ...
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).
Twitch
User
Beiträge: 4
Registriert: Dienstag 23. März 2010, 19:54
Wohnort: Berlin

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...
[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]
BlackJack

@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.
Twitch
User
Beiträge: 4
Registriert: Dienstag 23. März 2010, 19:54
Wohnort: Berlin

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
[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]
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo Twitch

Hier etwas zum herumspielen:
Battleground-Animation

Gruß wuf :wink:
Take it easy Mates!
Twitch
User
Beiträge: 4
Registriert: Dienstag 23. März 2010, 19:54
Wohnort: Berlin

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]
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Verstehe nicht, was hier der Sarkasmus soll.
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo mkesper
mkesper hat geschrieben:Verstehe nicht, was hier der Sarkasmus soll.
Verstehe absolut nicht was du hiermit meinst? Der Groschen fällt nicht.

Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Twitch hat geschrieben:Danke für die Hilfsbereitschaft. ^^
Die ^^ meine ich.
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo mkesper

Danke. Sorry habe es ich nicht so interpretiert.

Gruß wuf :wink:
Take it easy Mates!
BlackJack

Ich auch nicht. Seit wann steht ^^ für Sarkasmus und nicht für einen einfachen "Smiley"!?
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

OK, ist halt alles nicht eindeutig... Sorry! :)
Antworten