Seite 2 von 2

Verfasst: Mittwoch 16. April 2008, 00:00
von EyDu
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

Verfasst: Mittwoch 16. April 2008, 00:07
von Kalkas
: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 :>

Verfasst: Mittwoch 16. April 2008, 00:09
von EyDu
Schlafen ist eine tolle Idee. Wär ich doch nur nicht heute um 14 Uhr aufgestanden... :roll:

Verfasst: Mittwoch 16. April 2008, 00:10
von Kalkas
bin ich auch :roll:

muss leider morgen früh raus :>

Verfasst: Mittwoch 16. April 2008, 05:51
von numerix
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 ...

Verfasst: Mittwoch 16. April 2008, 07:22
von 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.

Verfasst: Mittwoch 16. April 2008, 09:41
von Kalkas
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 :>

Verfasst: Freitag 25. April 2008, 12:04
von Kalkas
so, es funktioniert jetzt

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