Hallo
Ich habe ein eindimmensionales WORD-Array.
Immer 6 Werte in diesem Array gehören zusammen und ihnen ist ein Wert aus einem zweidimmensionalen Int-Array zugeordnet.
Dabei geht es um eine TileEngine.. Den 6 Word-Indices ist je eine Textur zugeordnet.
Ich muss jetzt die Indices nach den Texturen sortieren, denen sie zugeordnet sind und je in einem separaten Array der Reihe nach festhalten, (1) um welche Textur es sich handelt und (2) wie viele Indices zu dieser Textur passen.
Am Schluss würde ich dann also 3 Arrays verwenden:
1. Array mit allen Indices sortiert nach dazugehörigen Texturen
2. Array, in dem gespeichert ist, welche Textur jeweils zu den Indices gehört
3. Array das angibt, wieviele Indices jeweils zur gleichen Textur gehören
Ich rufe dann die Zeichenfunktion für jede Textur einmal auf, so nach dem Stil:
int StartIndex=0;
for(int i=0; i {
SetTexture(Textur[Array2[i]])
Draw(Array1, StartIndex, StartIndex+Array3[i]);
StartIndex += Array3[i];
}
Der Witz an dem ganzen ist, dass das Sortieren und das Erstellen der 3 Arrays in jedem Frame gemacht werden musss und es daher schon verdammt schnell sein müsste.
Meine bisherigen Lösungsideen scheinen mir alle ein bisschen umständlich.
Ich hoffe ihr hab verstanden, wie ich das meine und könnt mir eventuel l helfen :)
Danke!
[Diese Nachricht wurde nachträglich bearbeitet.]
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Hi!
Ich bin mir noch nicht sicher, ob ich es richtig verstanden habe. Ich versuche es mal anders und mit eigenen Worten zu beschreiben:
Die 6 Word-Werte beschreiben ein aus zwei Dreiecken zusammengesetzes Viereck (kein Quadrat) - ein Tile.
Dein Programm kennt verschiedene Texturen.
Es wird festgelegt, welches Tile mit welcher Textur gezeichnet wird.
Im Programm muss für jedes Frame (=bei jedem Neuzeichnen des Bildes) bestimmt werden,w elche Tiles sichtbar sind.
Um das Zeichnen der Tiles zu beschleunigen, sollen die mit der gleichen Textur nacheinander gezeichnet werden (ich vermute, dass ein Umschalten der Textur zeitaufwendig ist).
Das Problem ist jetzt die Tiles möglichst zeiteffektiv nach ihrer zugeordneten Textur zu sortieren.
Hmm.
Ist da eigentlich wirklich eine Sortierung nötig? Recht es da nicht einfach ein Liste der Tiles anzulegen, die einer Textur zugeordnet sind und die dann abzuarbeiten? Wieviele Texturen verwendest du maximal? 10, 100 oder 1000? Bis 100 dürfte es doch machbar sein, die zu zeichneten Tiles einfach in einem Pufferarry einzusortieren, den man vorher mit fixer länge anlegt.
Bis dann
Andreas