Angenommen, ich habe drei Ebenen: einen Vordergrund, einen Zwischenboden und einen Hintergrund. Was ist mit der Verwendung dieser drei Ebenen für das Parallaxen-Scrollen verbunden ?
Angenommen, ich habe drei Ebenen: einen Vordergrund, einen Zwischenboden und einen Hintergrund. Was ist mit der Verwendung dieser drei Ebenen für das Parallaxen-Scrollen verbunden ?
Antworten:
Teilen Sie die Position jeder Ebene durch den „Abstand“, den Sie von der Kamera haben möchten.
Beispiel: Erstellen Sie einige Variablen zur Darstellung der Kameraposition cameraX
und cameraY
. Stellen Sie diese so ein, dass sie der Position Ihres Charakters entsprechen, und erhöhen Sie möglicherweise die Bewegungsrichtung.
Die Hauptschicht würde nur bei positioniert werden
mainLayer.x = -cameraX;
die mittlere schicht bei sowas
middleLayer.x = -cameraX * 0.5;
und die ferne Schicht bei
farLayer.x = -cameraX * 0.2;
Ändern Sie die Konstanten nach Bedarf.
Grundsätzlich möchten Sie, dass sich Objekte umso schneller bewegen, je näher sie an der „Kamera“ sind. Wie Sie das umsetzen, liegt ganz bei Ihnen.
Ich ordne jeder meiner Ebenen eine Tiefe zu und teile diese beim Scrollen für jede Ebene durch die Tiefe der Ebene, sodass sich weiter entfernte Ebenen langsamer bewegen.
Eine Ebene, die "weiter hinten" ist, müsste mit einem Bruchteil der Geschwindigkeit der Vordergrundebene scrollen. Die Hälfte der Geschwindigkeit bedeutet die doppelte Entfernung. Andere Effekte wie das Abtönen zur Simulation von Nebel usw. könnten ebenfalls zur Illusion beitragen.
Am besten rendern Sie Sprites einfach als Quads mit Werbeplakaten in 3D. Das "Gameplay" kann in einer Ebene stattfinden, während der Hintergrund und der Vordergrund im 3D-Raum näher oder weiter positioniert werden können. Auf diese Weise wird der Parallaxeneffekt für Sie erledigt, ohne dass Sie eine spezielle Codierung vornehmen müssen :-)