Also speichern brauchst du die alte Position nicht, du mußt einfach nur vor dem Verschieben mit den neuen Werten prüfen.
also sozusagen statt
Delphi-Quellcode:
if (X + R > Wand2) or (X - R < Wand1) then Schritt := -Schritt;
X := X + Schritt;
erstmal schauen wo die neue Position wäre und schon vorm Verschieben darauf reagieren
Code:
if (X + [color=#ff0000]Achritt[/color] + R > Wand2)
or (X + [color=#ff0000]Achritt[/color] - R < Wand1) then Schritt := -Schritt;
X := X + Schritt;
und nicht erst wenn das Teilchen schon in der Wand ist ^^
(hier mal an 'ner geraden PingPong-Bewegung zwischen 2 Wänden)
Ein Therapeut entspricht 1024 Gigapeut.