Beim Map-Editor habe ich nun eine große Hürde mit viel
mathematischer Rechnerei hinter mir:
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
|
|
Version 0.1.2 des Map-Editors:
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