Hi
Ich habe hier sehr viele Objekte (Partikel) die miteinander agieren sollen (sagen wir mal eine Art Kollision).
Nun habe ich also meine Prozedur für die Bewegung (Geschw.vektoren auf die Positionsvektoren addieren) und die für die Kollision mit einem anderem Partikel.
Das sieht in etwa so aus:
Delphi-Quellcode:
for i:=0 to NumberOfParticles do
ParticleList[i].DoMove;
for i:=0 to NumberOfParticles do
begin
for j:=0 to NumberOfParticles do
begin
if i<>j then
ParticleList[i].DoCollision(ParticleList[j]);
end;
end;
(Nur sinngemäß kurz getippt).
Wie man sieht habe ich 2 Schleifen.
Warum? Nunja...ich muss zuerst die Bewegung
aller Partikel ausrechnen und dann die Kollision, sonst sieht das Ganze leicht seltsam aus.
Gibt es trotzdem eine Möglichkeit 2 Schleifen zu umgehen? (Ich ahne dass das in einem Bereich einer gewissen Anzahl zu langsam wird)
air