Partickelcode
-
@Stefan Zerbst
Das ist eine gute Idee, aber:pPartikel[i] = pPartikel[m_iPartikels-1];
Aber braucht das nicht viel Zeit ein Partickel zu kopieren?
Ein Partickel besteht ja schon mindestens allein aus 7 Zahlen(3×Ort und 3×Geschwindigkeit, Lebenszeit) und zusätzlich noch die anderen Werte.Dagegen geht das Löschen doch schneller? Man muß nur
1)Vorgänger auf Nachfolger verlinken
2)Nachfolger auf Vorgänger verlinken
3)Den Speicher den das Partickel einnahm als freigeben erklären.
---Okay vielleicht sollte man mal eine grundlegende Frage klären.
Wie lange dauert das Speichererstellen/freigeben im Vergleich zu einer Zuweisung? hat da wer eine Ahnung[ Dieser Beitrag wurde am 07.05.2003 um 17:47 Uhr von Janko editiert. ]
-
Original erstellt von Janko:
PartickelKannst du nicht die korrekte Schreibweise benutzen?!
Ich muss da immer an Pickel denken!
-
Lol klar
"Partikel"
-
Nicht löschen, in die Leichen-Liste(bzw. Liste von Pointer auf Leichen) damit.
-
man kann jetzt so lang darüber diskutieren wie vile es kostet partikel zu verscheiben und so. aber hauptargument gegen listen ist in meien augen das es länger geht eine liste zu durchlaufen als ein array weils einfach aufwendiger ist... und das durchlaufen der liste muss ja ziemlich oft geschehen...
-
Hi,
das ständige dynamische Allokieren und Deallokieren von Speicher würde ich nie zur Laufzeit vorziehen. Natürlich kann das Kopieren eines Partikels auch Zeit kosten aber eine Liste linearen Speichers kann schneller durchlaufen werden (weiterschieben des Pointers statt [ i ] Zugriff) als eine verkettete Liste.
Am sinnvollsten ist sicherlich eine verkettete Liste auf einem statischen Speicher, was aber wieder eine eigene Klassenimplementierung voraussetzt.
Für einfache Programme ist die Array Version vorzuziehen, da man keinerlei Setup-Aufwand hat.
Ciao,
Stefan
-
...nach dem wir Unreal nachprogrammiert hatten kümmerten wir uns um optimierte Partikelsysteme.
-
Original erstellt von Stefan Zerbst:
**eine Liste linearen Speichers kann schneller durchlaufen werden (weiterschieben des Pointers statt [ i ] Zugriff) als eine verkettete Liste.
**
-
er meint wohl vector
-
jetzt versteh ich es noch weniger. Ich glaub ich weiss was er meint, dass man schneller durch einen Vector iterieren kann, als durch eine verkettete Liste.
Aber was hat es mit dem [i] aufsich