Die Bitmapprobleme hat ja Sir Rufo bereits beantwortet.
Das Klebeproblem lässt sich hierdurch beseitigen, allerdings ist das noch nicht final, da durch die Bedingungen Kollisionen z.B. oben und rechts gleichzeitig gefunden werden, was zu einer optisch nicht nachzuvollziehenden Reflexion führt. Ich habe leider jetzt nicht mehr die Zeit mir eine brauchbare Bedingung zu suchen. Aber wir haben ja genügend Mitstreiter hier ...
Delphi-Quellcode:
if InterSectRect(Stubrect, Kreis[b].BoundsRect, Image3.BoundsRect) and Image3.Visible then // Box
begin
if ((Kreis[b].y + Kreis[b].Height) > Image3.top) or (Kreis[b].y <= (Image3.top + Image3.Height)) then
Kreis[b].speedy := -Kreis[b].speedy;
if ((Kreis[b].x + Kreis[b].Width) > Image3.left) or (Kreis[b].x <= (Image3.Left + Image3.Width)) then
Kreis[b].speedx := -Kreis[b].speedx;
end;
Kreis[b].x := Kreis[b].x + Kreis[b].speedx;
Kreis[b].y := Kreis[b].y + Kreis[b].speedy;