Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: viele fliegende sich abstoßende Bälle??

  Alt 3. Nov 2004, 17:40
Hi!
Zunächst mal läuft das Abstoßen der Bälle nicht wirklich korrekt (nur für einen sog. "zentralen Stoß" stimmts) - dazu findest du hier auch min. 2 Threads die vor kurzem zu dem Thema entstanden sind.

Zum eigentlichen Problem:

Du erstellst ein Array von Bällen, und prüfst in einer Doppelschleife jeden Ball gegen jeden anderen, wobei du darauf achten musst, dass ein Ball nicht gegen sich selbst geprüft werden darf (macht in deinem Programm keinen unterschied, aber kostet Zeit und ist ja schon rein philosophisch fragwürdig ).

Pseudocode:
Delphi-Quellcode:
for a := 0 to High(BallArray)-2 do
begin
  for b := a+1 to High(BallArray)-1 do
  begin
    wenn sich Ball a und Ball b berühren
    begin
      abstoßung;
    end;
  end;
end;
Der Trick hier liegt dabei die innere Schleife bei a+1 beginnen zu lassen, damit 2 Bälle nicht doppelt überprüft werden. (Und schneller ists zudem auch )

Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat