Ich habe ein kniffliges Problem. Ich bin mir nicht sicher, wie ich es am besten angehen soll: Ich habe eine animierte Kachel einer Tür. Wenn es geschlossen ist, sollte es in eine Richtung sortiert werden, aber wenn es offen ist, muss es in eine andere Richtung sortiert werden, da es zu einer anderen (benachbarten Kachel) gehört.
Hier ist die Tür geschlossen:
und die Tür öffnete sich:
Ich stelle mir vor, es wäre möglich, das Sortiersystem für solche Kacheln zu überschreiben und die Sortierung basierend auf dem Rahmen anzupassen, aber es fühlt sich ein bisschen hackig an.
Hat jemand ein ähnliches Szenario erlebt? Irgendwelche eleganten Lösungen?
Antworten:
Vielleicht könnten Sie aus zwei Objekten auf verschiedenen Kacheln eine Tür machen und jeweils nur eines davon zeigen. Auf diese Weise könnte eine geöffnete Tür möglicherweise auch die Bewegung blockieren, was irgendwie realistisch erscheint.
quelle
Erstelle drei Sprites ...
Wenn die Tür geschlossen ist, zeichne Sprite 1 und behandle es als "Blocker", damit die Spieler nicht hindurchgehen können.
Wenn die Tür geöffnet wird, ersetzen Sie das Sprite durch # 2 (nur den Türpfosten). Platzieren Sie dann Sprite Nr. 3 (nur die Tür) in der angrenzenden Zelle, in der sich die Tür befinden würde.
Beim Schließen wird lediglich die Tür entfernt und der Pfosten durch Pfosten + Tür in geschlossener Position ersetzt.
Mit diesem Setup müssen Sie sich nicht darum kümmern, die geöffnete Tür in einer speziellen Reihenfolge zu rendern. Rendern Sie es einfach in der Reihenfolge wie jedes andere Objekt auf dem Quadrat, in dem es sich befindet.
Der Nachteil ist, dass Sie den Spieler oder ein anderes Objekt nicht auf dem Platz haben können, auf den die geöffnete Tür geht.
quelle
Es gibt 2 Tricks, die ich zum Sortieren in 2D verwende:
Fügen Sie Sprites die Bodenposition hinzu. Dies ist ein Punkt, an dem Sprite den Boden berührt (z. B. Männerfüße, Baumstamm, Türrahmen) und anstelle von Sprites-Pixeln danach sortieren. Auf diese Weise wird Sprite nicht von Animationen beeinflusst
Fügen Sie Objekten nicht sortierbare Kinder hinzu (z. B. können Männer mehrere Kinder haben, die die Sortierung nicht beeinflussen - Umhang, Bogen, Schwert usw., Türrahmen hat Kindertür). Auf diese Weise wirkt sich die Animation von untergeordneten Sprites auch nicht auf die Sortierung aus.
quelle
Der beste Weg, um das Sortieren von Objekten zu lösen, besteht darin, überhaupt nicht zu sortieren. Wenn Sie einen Tiefenpuffer verwenden, können Sie alles in einem Durchgang rendern. Objekte mit einem höheren Z-Wert sind weiter entfernt als Objekte mit einem niedrigeren Z-Wert.
Selbst wenn Ihr Spiel 2D ist, sollten Sie dennoch die Verwendung von 3D-Koordinaten mit einem Tiefenpuffer in Betracht ziehen, da Sie sonst für immer mit dem Algorithmus des Malers Tango spielen werden .
quelle