sorry aber nur das mit den variablen habe ich verstanden... was meinst du mit dem rest? wieso muss ich ungleich null erreichen? und debuggen... habsch noch nie gemacht?
edit| tut mir leid das ich euch so auf die nerven gehe aber ich finde den fehler einfach nicht... ich versteh das so...
Delphi-Quellcode:
rocedure TForm1.Timer1Timer(Sender: TObject);
var dx,dy:integer;
begin
if (Shape1.Top <= 0) or (Shape1.Top >= image1.ClientHeight - Shape1.Height) then //wenn oberseite
// vom kreis=0 oder der kreis die höhe des images überschreitet , dann reflektiere
begin
dy := -dy; //richtungsänderung
end;
if (Shape1.Left <= 0) or (Shape1.Left >= image1.ClientWidth - Shape1.Width) then
begin
dx := -dx; // richtungsänderung
end;
Shape1.Left := Shape1.Left + dx; // das verrücken ohne kollision vom kreis
Shape1.Top := Shape1.Top + dy;
end;
...oh yeah...