AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Kollision Ball mit Ball über Winkel
Thema durchsuchen
Ansicht
Themen-Optionen

Kollision Ball mit Ball über Winkel

Ein Thema von Tyrael Y. · begonnen am 30. Nov 2006 · letzter Beitrag vom 1. Dez 2006
 
Tyrael Y.

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

Re: Kollision Ball mit Ball über Winkel

  Alt 30. Nov 2006, 12:41
Ok den Code nochmal, damit es übersichtlicher aussieht bissel umgeschrieben.


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;
     LDistance: Single;
     LCurrentBall,
     LBall: TLvBall;
begin
  
  LCurrentBall := TLvBall(FBalls[AIndex]);

  for i := 0 to FBalls.Count-1 do
  begin
    if i <> AIndex then
    begin
      LBall := TLvBall(FBalls[i]);
      
      if GetDistanceOfPoints(LBall.X, LBall.Y,
           LCurrentBall.X, LCurrentBall.Y) -
           (LBall.Radius + LCurrentBall.Radius) <= 0 then
      begin
         LCurrentBall.Angle := GradToRad(360 + (180 - RadToGrad(LCurrentBall.Angle)));

         LBall.Angle := GradToRad(360 + (180 - RadToGrad(LBall.Angle)));
      end;
  end;
end;
1. Ob ich das Ergebnis aus GetDistance mit der Summe der Radien Vergleiche oder ob ich diese Beiden Werte voneinander abziehe und gucke, ob sie kleiner als Null sind ist ja im Prinzip dasselbe

2. Laut Hilfe gibt es beide RadToDeg und auch RadToGrad

3. (Den Code hab ich hier einfach im Editor umgeschrieben, könnten sich also Fehler eingeschlichen haben)
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz