Hallo! Ich melde mich hier nach einer längeren Pause wieder.
Mittlerweile bin ich von XNA umgestiegen auf LibGDX. Das hat den Vorteil, dass ich
relativ Betriebssystem-Unabhängig bleibe und sogar ohne viel Aufwand (außer vll die Steuerung) auch auf Mobilgeräte portieren kann.
Prinzipiell sollte die Logik von XNA ja auch LibGDX übertragbar sein, weshalb ich bis jetzt nur die APIs ausgekunschaftet und ein wenig
rumgespielt habe.
Nun möchte ich gerne ein kleines Projekt starten.
Und zwar handelt es sich dabei um ein kleines Spiel (wenn es überhaupt den Status erreicht) das über eine 3D Umgebung verfügt.
D.h. Map, Gebäude und Dekoration (sowie evtl Effekte) sind in 3D gehalten. Im Gegensatz dazu sollen die Charactere, Monster und Items
in 2D dargestellt werden.
Das Problem dabei: Die Tiefen-Regelung.
Bei Pure 2D wäre es ja relativ einfach, da man einfach Layer verwendet die gegenseitig Verdecken können.
In 3D wäre es aufgrund des Z-Buffers einfach.
Im 2D/3D weiß ich jedoch nicht wie ich das anstellen soll.
Ein paar Infos vll noch, die Helfen könnten, das Problem einzugrenzen:
Die Charaktere sollen definitiv in 2D sein. Dabei bekommt ein 2D Charakter 8 Richtungen.
Wenn die Kamera sich also um den Charakter dreht wird, je nach Orientierung des Charakters und Winkel zwischen OrientierungsVektor und Kamera-Sprite-Vektor ein neues Charakter-Sprite geladen um ihn sich mitdrehen zu lassen.
Die Kamera lässt sich also frei drehen. Der Winkel zum Terrain soll sich jedoch nicht verändern lassen.
Ein paar Lösungen habe ich mir zwar ausgedacht, nur wird keine davon zu 100% klappen.
1. Für die 3D-Welt Layers herstellen, um den Charakter dahinter zu verstecken.
Dem würde aber die sich drehende Kamera im Wege stehen, da, wenn der Charakter perspektiv zunächst hinter einem Objekt steht und ich die Kamera drehe, der Charakter über die Layers immer noch verdeckt werden würde.
2. Ein Plane, die mit dem Charakter-Sprite texturiert wird. Die könnte problemlos hinter anderen Objekten versteckt werden.
Dabei gibt es aber 2 Probleme.
1. Die Durchsichtigkeit des Planes an stellen, wo das Sprite auch durchsichtig sein sollte.
2. Müsste sich das Plane auch drehen, sollte sich die Kamera um den Charakter drehen. Zusätzlich müssten sich auch alle anderen Charaktere drehen, was natürlich zu Performance-Einbußen führen könnte
Ich hoffe ihr versteht mein Problem und könnt mir dabei helfen.
Gruß,
JustJim