Come implementerei una strada senza fine che il giocatore percorre?


Risposte:


16

Disegnerei un singolo quad testurizzato sul terreno (cioè steso sul piano XZ), grande quanto l'area visibile dovrebbe essere, e poi giocherò con le coordinate della trama dei vertici (con la modalità di indirizzamento della trama impostata per avvolgere ) al fine di occuparsi automaticamente della ripetizione e dello scorrimento delle trame .

  1. Per la ripetizione invece di impostare la coordinata della trama verticale da [0 a 1], impostala da [0 a N] dove N è il numero di volte in cui desideri ripetere la trama. Regola questo valore in base all'altezza del tuo quad rispetto all'altezza della trama.
  2. Per lo scorrimento, scorrerei semplicemente la coordinata della trama verticale, in modo che invece di variare da [0 a N] varierebbe da [inc a N + inc] con il valore di inc incrementato o decrementato di ogni fotogramma. Di tanto in tanto mi piacerebbe avvolgo inc torna alle origini, al fine di evitare overflow / underflow.

EDIT Ho appena provato a implementarlo esattamente come ho descritto (ma in XNA) e ha funzionato abbastanza bene. Guarda questo video della demo. Codice sorgente qui per chi è interessato.


Ad esempio, con N uguale a 3 otterrai qualcosa come l'immagine qui sotto (ho dipinto la sezione centrale in rosso in modo da poter vedere dove si verifica la ripetizione). Quindi, semplicemente modificando il valore di inc si farebbe scorrere la strada in una direzione o nell'altra, a seconda che sia stata incrementata o decrementata.

inserisci qui la descrizione dell'immagine


La stessa tecnica può essere utilizzata per simulare l'animazione dei thread del serbatoio. Certo, non sarà utilizzabile se
modellerai

1

Se vuoi fare una strada senza fine "per davvero", crei tre superfici e le fai scorrere mentre ogni superficie si sposta fuori dalla vista. Posiziona le superfici end-to-end nello spazio mondiale e spostale tutte verso la telecamera. Quando l'estremità più vicina si sposta dalla telecamera, reimpostare la sua posizione sull'estremità della superficie più lontana.

Se vuoi implementarlo come uno sprite con l'illusione del movimento, devi creare un numero di trame diverse, che dovrebbero assomigliare a questo:

Mentre la vista si sposta in avanti, scorrere le trame in ordine.


0

Ripetere l'immagine è una buona idea. Scopri quante ripetizioni devono essere visibili sullo schermo e disegna l'immagine quel numero di volte. Mentre la strada scorre, ci sarà un punto in cui un'immagine è completamente dietro la telecamera e quindi invisibile. A quel punto, vuoi spostare quell'immagine da dietro i tuoi piedi all'estremità della striscia di immagini finite.

Mentre ci siamo, otterrai il miglior effetto da esso imitando la prospettiva instabile di un uomo che corre. Registra un tuo film mentre corri dalla prospettiva dei tuoi occhi e studialo.


2
Non funziona davvero, poiché la sua immagine è prospettiva. Avrebbe bisogno di immagini diverse per giocare come animazione.
Bobby,
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.