Come posso implementare lo scorrimento della parallasse in 2D?


Risposte:


20

Dividi la posizione di ciascun livello per la "distanza" che desideri che abbia dalla telecamera.

Ad esempio: creare un paio di variabili per rappresentare la posizione della telecamera cameraXe cameraY. Impostali per eguagliare la posizione del tuo personaggio, eventualmente aggiungendo un po 'di più nella direzione del movimento.

Lo strato principale verrebbe semplicemente posizionato su

mainLayer.x = -cameraX;

lo strato intermedio in qualcosa del genere

middleLayer.x = -cameraX * 0.5;

e lo strato più lontano a

farLayer.x = -cameraX * 0.2;

Modificare le costanti secondo necessità.


3
Ciò che Iain ha detto, in più prendo il "fattore di parallasse" (1, 0,5 e 0,2 nel codice di Iain) e lo trasformo in un parametro che descrive i miei livelli, in questo modo posso regolare la sottigliezza della parallasse (o in fase di esecuzione).
Troy Gilbert,

6

Fondamentalmente vuoi che gli oggetti si muovano più velocemente, più si avvicinano alla "telecamera". Come lo implementi dipende da te.

Assegno a ciascuno dei miei livelli una profondità, e quindi mentre scorro la scena, per ogni livello divido tale scorrimento per la profondità del livello, in modo che gli strati più distanti si spostino più lentamente.


5

Un livello "più indietro" dovrebbe scorrere a una frazione della velocità del livello di primo piano. La metà della velocità implica il doppio della distanza. Altri effetti come la colorazione per simulare la nebbia, ecc., Potrebbero anche aggiungere all'illusione.


1

Il modo migliore per farlo è semplicemente renderizzare gli sprite come quad in cartellone in 3D. Il "gameplay" può avvenire tutto su un piano, mentre lo sfondo e il primo piano possono essere posizionati più vicini o più lontani nello spazio 3d. In questo modo, l'effetto di parallasse viene gestito per te senza che tu debba eseguire alcuna codifica speciale :-)


3
Se lo fai, devi scalare i quadranti distanti per compensare il ridimensionamento della distanza o impostare una matrice di proiezione che non applica alcuna prospettiva. Potrebbe essere più semplice tradurre i quad da soli.
munifico

0

Fai scorrere il livello inferiore sottraendo dalla sua posizione, disegna il livello medio normalmente e fai scorrere il livello superiore alla velocità del livello inferiore diviso per due.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.