Hi,
if (wandy=0) and wand and (x-r<wandx) then begin
wenn ich das richtig deute, ist hier (x-r) die x-Position des Teilchens nach der Bewegung. Das klappt auch für große vx, weil ja dann auch git "<wandx".
Delphi-Quellcode:
if wand and (x+r>wandx-2) and (x+r<wandx-1) and (vx>0) and (y+r>wandy) then vx:=-vx else
if wand and (x-r<wandx+2) and (x-r>wandx-1) and (vx<0) and (y+r>wandy) then vx:=-vx;
bein angehobener Wand wird geprüft, ob die neue x-Position "an" der Wand ist, aber bei großem vx kann die neue Position ja auch weit in oder hinter der Wand liegen. Müsste man nicht einfach prüfen, ob die neue Positon "auf der anderen Seite" der Wand liegt?