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
Hmm ist schwer zu erklären.
Diese 6 Indices stellen sozusagen ein Tile dar (2 Dreiecke mit gesamthaft 6 Punkten).
Diesem Quadrätchen ist ein Texturset zugeordnet.
Das mache ich mit dem zweidimmensionalen Int-Array.
Dieses Array stellt die Karte dar. In etwa so (natürlich viel grösser)
1 1 1 1 1 1
2 2 2 2 2 2
33 45 34 34 45 44
12 22 22 23 24 11
In den ersten beiden Reihen würde Texturset1 verwendet, in der dritten Reihe Texturset 2 und in der letzten Reihe wieder Texturset 1 (Da in einem Texturset 32 Texturen gespeichert sind)
Weleche Textur aus dem Set verwendet wird, ist mit den Texturkoordinaten des Vertex definiert... nicht weiter wichtig im Bezug auf mein Problem.
Ich muss jetzt, immer wenn gescrollt wird, die momentan auf dem Bildschirm sichtbaren Indexdaten(im WORD-ARRAY) sortiert nach den dazugehörigen Texturen in ein zweites WORD-Array kopieren.
Ein Lösungsansatz von mir:
Struktogramm
Der Nachteil ist eben, dass für jedes sichtbare Tile die ganze Liste der schon gefundenen Textursets durchlaufen und überprüft werden muss.
Beim eigentlichen Sortieren muss dann auch pro Texturset jedes Tile einmal überprüft werden.
Ich hoffe das war jetzt verständlich beschrieben, das ist wirklich schwer zu erklären...
[Diese Nachricht wurde nachträglich bearbeitet.]