In un gioco 2D a scorrimento, gli oggetti dovrebbero muoversi o la telecamera dovrebbe muoversi?


8

Sono nuovo nel design del gioco e non so davvero come vengono fatte le cose. Sto pensando di costruire un gioco iOS in cui una nave deve volare il più in alto possibile (a velocità variabile), raccogliendo potenziamenti, eccetera, lungo la strada.

Qual è la strada da percorrere qui? Lo sfondo e gli elementi dovrebbero scorrere dall'alto verso il basso o la nave dovrebbe davvero volare in alto spostando la vista con esso?


L'unica risposta corretta è "entrambi".
Blecki,

Risposte:


6

È tutto relativo. Davvero, stai sempre trasformando la tua vista rispetto alla tua posizione fissa del giocatore.

Quindi, dimenticando lo schermo per ora, supponiamo che tu abbia questi 3 passaggi (che rappresentano le posizioni mentre si aggiornano su ogni ciclo di gioco):

  1. playerWorldPosition = 50, 100; objectWorldPosition = 60, 200;
  2. playerWorldPosition = 55, 110; objectWorldPosition = 60, 160;
  3. playerWorldPosition = 60, 120; objectWorldPosition = 60, 120;

(come x, y in ogni caso)

Come puoi vedere, il giocatore sta volando in alto o saltando in alto e spostandosi leggermente a destra, mentre l'oggetto (potrebbe essere un potenziamento) sta cadendo verso il basso. Il giocatore prende il power-up. Ora come si disegna questo sullo schermo?

Innanzitutto, supponiamo che tu voglia il tuo giocatore al centro dello schermo in ogni momento. Quindi la vista si blocca sul giocatore: questo è l'approccio più semplice da visualizzare. La posizione del tuo giocatore sarà sempre screenCentre(es screenWidth/2, screenHeight/2.). Come si ottiene la posizione sullo schermo di altri oggetti nel mondo?

objectScreenPosition = (objectWorldPosition - playerWorldPosition) + screenCentre;

Puoi vedere che questa formula funziona anche per il giocatore reale, poiché (playerWorldPosition- playerWorldPosition) + screenCentreè uguale a screenCentre. Quindi puoi applicare la stessa formula a ciascuna entità del tuo gioco, scorrendo un elenco. Puoi utilizzare questo semplice approccio per sviluppare altre cose (come ritardo della videocamera, casi in cui ti trovi nell'angolo di un livello, ecc.)


E se ci fossero zero o molti oggetti giocatore? E se vuoi fare effetti speciali come il tremolio della fotocamera? Anche se la matematica sembra la stessa, in realtà non è la stessa cosa. E non è l'uno o l'altro. Gli oggetti si muovono e anche la telecamera si muove.
Blecki,

1
@Blecki ... dici, dopo che la risposta è stata accettata. Se pensi davvero che siano così diversi, devi avere difficoltà a impostare le tue visualizzazioni. Vai a scrivere la tua risposta concisa sulle trasformazioni di vista che trattano tutti i casi angolari, quindi. Nessuno ti ferma.
Ingegnere

Hai una videocamera, ha una posizione, crei una matrice di visualizzazione. Non esiste un caso d'angolo.
Blecki,

1
@Blecki Ora ti stai contraddicendo. "E se vuoi fare effetti speciali come il tremolio della fotocamera?"
Ingegnere

1
@Blecki. Corretta. Sono contento che siamo d'accordo.
Ingegnere
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.