Problem mit coords

Fragen zu Tkinter.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Deshalb wollte ihr ja ausschließen, dass die verschiedenen Systeme der Fehler sind. Mit "müsste" und "theoretisch" hast du aber schon mal zwei für Informatiker sehr wichtige Begriffe gefunden :P
Kalkas
User
Beiträge: 14
Registriert: Montag 14. April 2008, 16:01

:lol:

Naja, dann werd ich noch ne Nacht drüber schlafen und wenn ichs dann noch nicht rausbekomme mach ich hald an ner anderen stelle weiter, vlt ne jump() und ne fall() methode und wenn ich den code mal testen will schick ich ihn einfach an dich :>
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Schlafen ist eine tolle Idee. Wär ich doch nur nicht heute um 14 Uhr aufgestanden... :roll:
Kalkas
User
Beiträge: 14
Registriert: Montag 14. April 2008, 16:01

bin ich auch :roll:

muss leider morgen früh raus :>
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Das Problem ist mit Sicherheit der Koordinatenvergleich mittels '=='.
Da die Canvas-Koordinaten intern als Fließkommawerte verarbeitet werden, solltest du es z.B. so machen:

statt

Code: Alles auswählen

if wert1 == wert2: do_something()
so

Code: Alles auswählen

if abs(wert1-wert2)<0.001: do_something()
Und dann MUSS es einfach gehen ...
BlackJack

Vielleicht sollte man an dieser Stelle auch mal überlegen die GUI von der Spiellogik zu trennen und nicht Canvaskoordinaten verwenden. Wenn da wirklich Ungenauigkeiten beim `move()` auf dem `Canvas` entstehen, kann es ja auch sein, dass die sich im Laufe des Spiels immer weiter akkumulieren und auch irgendwann ein Vergleich mit einem Epsilonwert nicht mehr richtig funktioniert.
Kalkas
User
Beiträge: 14
Registriert: Montag 14. April 2008, 16:01

du meinst also zb beim bewegen das move() nicht zu benutzen und die objekte einfach auf die neuen berechneten werte neu zeichnen?

ich probiers mal :>
Kalkas
User
Beiträge: 14
Registriert: Montag 14. April 2008, 16:01

so, es funktioniert jetzt

durch das trennen der GUI von der Spiellogik hat sich das problem dann automatisch von selbst gelöst =)
Antworten