Fertigschreiben??? Da wirst du sicher niemand finden. Dein Problem liegt bei dir bei deiner hardgecodeten Procedure 'Stoss';
Delphi-Quellcode:
procedure stoss ;
begin
if sqrt ( sqr(ball1.getx-ball2.getx)+sqr(ball1.gety-ball2.gety)) <= (ball1.r+ball2.r) then
begin
tausche (ball1.vx,ball2.vx);
tausche (ball1.vy,ball2.vy);
end;
end;
Delphi-Quellcode:
// Mach mal was in diese Richtung;
procedure stoss(var b1,b2: TBall) ;
begin
if sqrt ( sqr(b1.getx-b2.getx usw.
... end;
Das var ist wichtig, sonst darf deine procedure keine Werte von b1 oder b2 schreiben, sondern nur lesen.
Mit deiner Procedure kannst du nur Ball1 und 2 vergleichen und du zwingst die Programmierer, die auch noch deine Klasse nutzen wollen, immer ihre Bälle so wie du zu benennen. Das ist sehr schlechter Stil.
[edit=Christian Seehase]Delphi-Tags korrigiert. Mfg, Christian Seehase[/edit]
Erwarte das Beste und bereite dich auf das Schlimmste vor.