Die Überprüfung ob der Charakter vor-, oder hinter einem Objekt ( einem Baum, Haus, etc. ) steht. Quasi das 3 dimensionale an unserem 2D Spiel ;).
Wie genau funktioniert das nun?
Es wird zunächst eine Liste erstellt, die nach der Höhe der unteren Kante der Texturen geordnet ist.
Die untere Kante deswegen, weil diese ja quasi den Boden berührt.
Der Spieler bekommt hingegen eine Nummer zugeteilt, die besagt nach der wievielten Textur das Bild des Spielers gezeichnet werden soll.
Beim zeichnen, wird die oben genannte Liste einfach abgearbeitet und der Spieler an der passenden Position dazwischen gezeichnet.
Schwierigkeiten bei der Umsetzung:
Zunächst habe ich versucht einfach die Höhen der unteren Kante in eine Liste einzutragen und die dann per "QuickSort" ( schneller Sortieralgorithmus ) zu sortieren. Dabei hatte ich dann das Problem, dass ich die Nummer der jeweiligen Textur ( jede Textur hat eine eindeutige ID ) nicht mit sortiert wird.
Nach ein paar Anläufen hatte ich es dann soweit, jedoch war die Liste verkehrt herum, sodass die Texturen dementsprechend falsch gezeichnet wurden.
Zunächst hatte ich die Schleifen einfach andersherum laufen lassen ( nicht von 0 bis x, sondern von x bis 0 ), jedoch war das keine optimale Lösung. Nach mehreren Versuchen bin ich dann auf die obige gekommen.
Video:
Hier ein kleines Video, welches zeigt, wie das ganze dann in echt aussieht. Nichts besonderes, es hat aber eine Menge Arbeit gekostet! Mehr Videos zum Map-Editor gibt es eventuell in Kürze. Bilder: Ein paar Bilder zum Map-Editor gibts jedoch schon im Vorraus ;) Zum Bildarchiv |
Nachdem ich ein paar Bugs behoben habe, lade ich die nächste Version des Editors hoch.
Als nächstes kommen dann noch Animationen ( z.B. Lagerfeuer, bewegende Lampen, etc. ), sowie noch kleinere Funktionen, die die Tools ( Füllwerkzeug, Radierer, etc. ) des Editors betreffen.
mfg
Hauke