Einzelnen Beitrag anzeigen

Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#1

Kollision Ball mit Ball über Winkel

  Alt 30. Nov 2006, 11:01
Was ist am folgendem falsch ?

Die Kugeln kollidieren ab und zu sogar ganz richtig.
Manchmal gehen sie aber ineinander rein und kollidieren gar nicht.

Angle ist in Bogenmass angegeben.

Delphi-Quellcode:

function GetDistanceOfPoints(X1, Y1, X2, Y2: Single): Single;
begin
  result := sqrt(sqr(X1-X2) + sqr(Y1-Y2));

end;


procedure CheckCollision(const AIndex: Integer);
var i: Integer;
     LTemp: Single;
begin
  for i := 0 to FBalls.Count-1 do
  begin
    if i <> AIndex then
    begin
      if GetDistanceOfPoints(TLvBall(FBalls[i]).X, TLvBall(FBalls[i]).Y,
           TLvBall(FBalls[AIndex]).X, TLvBall(FBalls[AIndex]).Y) -
           (TLvBall(FBalls[AIndex]).Radius + TLvBall(FBalls[i]).Radius) <= 0 then
      begin
         TLvBall(FBalls[AIndex]).Angle := GradToRad(360 + (180 - RadToGrad(TLvBall(FBalls[AIndex]).Angle)));

         TLvBall(FBalls[i]).Angle := GradToRad(360 + (180 - RadToGrad(TLvBall(FBalls[i]).Angle)));
      end;
  end;
end;
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat