Zitat Zitat
Zitat Zitat
Die Char-Bewegung hat Bugs...
Dies ist ebenfalls so und lässt sich nicht ohne weiteres beheben ...deswegen bleib dies auch vorerst so.
Ich vermute, dass es sich relativ einfach beheben lässt. Ich schreib mal ein bisschen Allgemeines dazu.

Das eigentliche Probleme besteht darin, dass links und rechts gleichzeitig gedrückt werden können, der Char aber nicht gleichzeitig nach links und rechts laufen kann. Das heißt es gibt einen Versatz zwischen Input (Tasten drücken) und Output (Bewegung des Chars, gemeint ist also nicht der Output an den User). Die Taste links ist nicht gleichzusetzen mit links laufen, das gleiche gilt für die Taste rechts, die nicht genau dem Befehl rechts laufen entspricht. Der Übergang zwischen Input und Output muss diesen Versatz überbrücken. Das Codefragment "if tasteLink then moveLinks" ist also falsch.

Man muss sich daher das ganze anders vorstellen. Die Taste links entspricht der Aussage "du sollst nach links laufen". "Du sollst nach rechts laufen", sollte also der Taste rechts entsprechen. Problematisch wird es, wenn die beiden Befehle aufeinander treffen und gleichzeitig ausgeführt merden sollen. Jedoch ist man jetzt schon einen Schritt weiter. Denn schließlich ist es möglich zwei verschiedene Befehle zu geben im Gegensatz zu dem vorherigen Problem, zwei gegensetzliche Dinge tun zu müssen.

Wie mit dem Befehl umgegangen wird, ist der Trick bei der Sache. Bekommt man zwei Befehle, ist es klar, dass man diese hintereinander ausführt. Während man also den ersten befolgt, muss man sich den zweiten merken.
Damit bekommt der Input-Output-Vorgang eine Zwischenkette. Aus "[Taste | Bewegung]" wird "[Taste | Befehlskette | Bewegung]".

Leider kann ich nicht auf den Quellcode zugreifen, sonst könnte ich dir genau sagen, wie der Fehler zu beheben ist. Mit der erweiterten Kette gibt es nämlich keinen Unterschied mehr ob vorher links festgehalten und rechts gedrückt wurde oder nicht.
Vielleicht kommst du ja irgendwann dazu, das anpassen zu wollen.


CapSeb