Come posso fare un movimento di coordinate polari facile da usare attorno a un cerchio?


23

Sto lavorando a un gioco 2D in cui atterri su pianeti con una nave e puoi uscire dalla nave e camminare.

Questi pianeti sono molto piccoli (pensa a volte ~ 350 pixel di raggio) e sono visti di lato. Quindi puoi facilmente vedere l'intero pianeta sullo schermo in generale.

Questo può essere un po 'confuso, quindi ecco un'immagine: gioco spaziale

Sto usando i tasti A e D per spostarmi rispettivamente in senso antiorario e orario. Il problema è che se sei sulla "cima" del pianeta (metà superiore), questo ha senso: A si sposta a sinistra, D si sposta a destra. Tuttavia, se ti trovi nella "parte inferiore" del pianeta (metà inferiore), A si sposta a destra e D si sposta a sinistra.

Qualche idea su come posso renderlo più user-friendly?


21
Hai chiesto agli utenti se lo trovano confuso? Io per certo non lo faccio: premi destra per spostare il tuo personaggio a destra e sinistra per spostare il tuo personaggio a sinistra dalla sua prospettiva . Questo è molto meglio che, per esempio, cambiare i pulsanti nel mezzo di un turno (se avevi intenzione di farlo).
Charanor,

Risposte:


38

Il mio primo suggerimento sarebbe quello di rimanere con A= Dmovimento in senso antiorario e = orario. Non è molto confuso ed è praticamente la scelta "standard" (cioè più comune) quando si tratta di un movimento orbitale come questo.

Un altro modo sarebbe quello di cambiare il modo in cui il gioco si muove. Invece di spostare il giocatore quando si trova su un pianeta, è possibile ruotare il pianeta invece. Questa è anche una scelta molto comune, ma può essere disorientante se hai più pianeti sullo schermo poiché tutto tranne il giocatore dovrà ruotare. Se decidi di utilizzare questo metodo, potrebbe essere utile visualizzare solo una parte del pianeta per ridurre la quantità di oggetti in movimento che l'occhio deve tenere traccia di:

solo la metà superiore del pianeta

Se sei libero di usare il mouse, puoi sempre usare i clic del mouse per spostarti. Facendo clic su una posizione, il giocatore si sposterà verso quel punto e sceglierà automaticamente la direzione più breve. I cerchi sono "clic" e le frecce sono la direzione più breve.

direzione più breve per il clic

Come bonus aggiuntivo è anche molto facile da tradurre in controlli per dispositivi mobili se desideri pubblicare anche il tuo gioco come app.


3
Se segui il movimento della fotocamera, ti suggerisco di ritardarlo un po 'indietro, se vuoi enfatizzare la direzione in cui stai andando e la velocità. il tuo personaggio sembrerebbe inclinato di 5 o 10 gradi nella direzione in cui ti stai muovendo.
Satibel,

16

Quando il personaggio esce dalla nave, riorienta la vista in modo che il personaggio si trovi in ​​cima al pianeta, quindi sposta la vista con il personaggio mentre cammina. In questo modo il personaggio è sempre in primo piano rispetto alla vista su un pianeta, quindi i controlli sinistra / destra possono rimanere coerenti indipendentemente da dove atterri.


3
Questo potrebbe diventare molto disorientante se non stai attento.
Beefster,

11

Un approccio (spesso usato in giochi in terza persona con movimento basato su stick che ha anche telecamere non statiche) è quello di stabilire il quadro di riferimento per il movimento ogni volta che inizia l'input (nel tuo caso, quando si preme il tasto) e mantenere quel frame di movimento fino al termine dell'ingresso (il tasto viene rilasciato). Ciò significa che il tasto "A" sposterebbe sempre il carattere "a sinistra", qualunque cosa fosse - in senso orario se si trova nella parte inferiore del cerchio, altrimenti in senso antiorario - fino a quando il tasto non veniva rilasciato.

Sfortunatamente, dal momento che sei vincolato a un cerchio, questa tecnica cadrà comunque a pezzi quando il personaggio si trova all'estremità sinistra o destra del cerchio. Puoi farlo funzionare semplicemente scegliendo arbitrariamente in quale direzione andare, ma l'utente potrebbe trovarlo confuso. Forse più confuso che semplicemente attenersi all'attuale approccio "A è sempre in senso antiorario" che hai ora.


6
Quando si trova sulla destra del cerchio, S dovrebbe spostarsi in senso orario.
user253751

1
Non ci ho pensato perché l'OP ha menzionato solo due chiavi, ma è una buona idea.
Josh,

1
È anche importante considerare i controlli dello stick analogico, dove questo modello di controllo è il migliore.
Beefster,

10

Ti suggerisco di dare un'occhiata a un concetto simile ma poi in 3d: Super mario galaxy.

screenshot di super mario galaxy https://youtu.be/_8eJC4gIAm4?t=19m

A brevi movimenti la cornice di riferimento rimane la stessa, l'universo non si muove, oltrepassa una certa soglia l'universo si muove / si sposta lungo in modo che la cornice di riferimento sia di nuovo al centro.

Potresti voler "sfocare il movimento" dell'universo quando ti muovi in ​​modo che appaia più naturale e gli occhi non si concentreranno sulle posizioni mobili delle parti mobili.

Presumo che Nintendo abbia investito parecchie ricerche per rendere il gioco il più fluido possibile e questo è ciò su cui si sono stabiliti. Mi piace sempre guardare a cosa hanno capito le aziende più grandi, sperando che abbiano investito qualcosa in ricerca e sviluppo per il massimo comfort e giocabilità.


7

Usa A/ Dper spostare il personaggio nella direzione verso il punto più a sinistra / più a destra del pianeta, rispettivamente, e W/ Sper spostare il personaggio verso i punti più in alto / più in basso.

In questo modo, il giocatore muove sempre il personaggio nella stessa direzione del movimento di input - ad esempio, Dsi sposta sempre a destra, Ssi sposta sempre verso il basso, indipendentemente dalla posizione del personaggio.

Il gioco potrebbe continuare nella stessa direzione dell'orologio mentre si tiene premuto il tasto, oppure fermare il personaggio nel punto limite. Se si ferma, non sembra un grosso problema: il giocatore ha un quadrante completo in cui cambiare il proprio input se vuole continuare nella stessa direzione di clock.

Inoltre, una circolare W- A- S- Do W- D- S- Amodello di risultati di immissione nella circumnavigazione del pianeta, che sembra abbastanza intuitivo.

Tenendo premuto più di un tasto, è possibile che il tasto premuto più di recente abbia la precedenza oppure si potrebbe usare un comportamento più complesso come avere otto punti limitanti.


1
Questo è ciò che stavo per suggerire dopo aver giocato a Super Mario Odyssey . Tuttavia, a causa del cambiamento negli schemi di controllo all'inizio non era abbastanza intuitivo. Se è il tuo schema di controllo principale, forse non sarà un problema
Kaiged

3

Questo è uno dei due classici problemi del "modello mentale" sofferto da molti giochi.

Ogni giocatore sviluppa un "modello mentale" per il modo in cui i controlli di gioco si associano alle azioni del gioco. Poiché i giochi sono diventati sempre più simili nei loro controlli nel tempo, le persone hanno iniziato ad aspettarsi che il loro modello mentale stabilito si applicasse a nuovi giochi, piuttosto che sviluppare modelli separati per giochi separati. Il che andrebbe bene, tranne per il fatto che non tutti i giocatori hanno lo stesso modello mentale di come dovrebbero funzionare i controlli.

Ad esempio, l'altro classico problema del "modello mentale" è se premere su un joystick (in genere la levetta analogica destra di un gamepad) dovrebbe significare alzare lo sguardo o se deve significare inclinarsi in avanti (cioè: guardare in basso ). Nessuno dei due modelli ha oggettivamente ragione , ma la maggior parte dei giocatori mantiene solo una di queste due possibili mappature nella propria testa e verrà scartata se un gioco fa qualcosa di diverso da quello che si aspettano personalmente.

La tua domanda è esattamente lo stesso dilemma; il problema del "modello mentale" qui è se premere a destra su una levetta di comando significa "spostare a destra del personaggio" (come in Resident Evil) o "spostarsi verso il lato destro dello schermo" (come in Mario). O in questo caso, "sposta in senso orario" (come in Tempesta, quando usi una conversione tradizionale dai comandi a paletta a joystick).

Ogni giocatore avrà un modello integrato a cui è abituato e sarà riluttante a cambiare (o avrà difficoltà a cambiare). In qualsiasi problema del "modello mentale", hai tre opzioni su come gestire il problema:

  1. Come sviluppatore, scegli quale modello è il migliore per il tuo gioco e lo usi. Ignora le lamentele delle persone che hanno problemi con il modello scelto; dovranno solo adattarsi. E se il tuo gioco è abbastanza avvincente, lo faranno.
  2. Implementa entrambi i modelli possibili e lascia che i giocatori scelgano quale vogliono usare.
  3. Riprogetta il gioco per assicurarti che la mappatura dei controlli-> azioni del gioco rimanga la stessa, indipendentemente dal modello mentale che qualcuno sta usando.

L'opzione 3 ("riprogetta il gioco in modo che i modelli mentali non siano in conflitto tra loro") in questo caso significherebbe ruotare la telecamera con il giocatore, quindi il giocatore appare sempre dritto sullo schermo. In questo modo, "destra significa andare in senso orario" e "destra significa andare verso il lato destro dello schermo" sono sempre allineati; non ci sono più conflitti e i giocatori non si confondono a seconda del loro modello mentale di come dovrebbero funzionare i controlli.

L'opzione 2 significherebbe implementare entrambi gli stili di controllo; uno in cui spingendo a destra ti porta verso il lato destro dello schermo, uno in cui spingendo a destra ti porta in senso orario e avendo una schermata di opzioni in cui il giocatore può scegliere quale stile di controllo vogliono usare.

Qualsiasi scelta qui è valida; le diverse opzioni richiedono solo diverse quantità di lavoro e impongono vincoli diversi al tuo gioco. Se per te è davvero importante che il giocatore sia visibile in movimento sul lato "inferiore" del pianeta, sia per motivi tematici che artistici, allora non vorrai usare l'opzione 3 e dovresti usare 1 o 2. Se no, quindi l'opzione 3 è probabilmente la scelta ideale.

Una nota di implementazione minore per lo stile di controllo "spingendo il joystick verso destra significa spostarsi verso il lato destro dello schermo": quando si implementa questo stile di controllo, è necessario farlo mappando la direzione del joystick in una scelta in senso orario / antiorario, quindi mantieni la stessa decisione in senso orario / antiorario fino a quando il joystick si sposta di nuovo, anche quando il giocatore si sposta nella parte inferiore del pianeta. Cioè, premendo a destra mentre si è in cima a un pianeta, o in basso mentre si trova sul lato destro di un pianeta, ognuno di essi inizierà a muoversi in senso orario, e il personaggio continuerà a muoversi in senso orario anche attorno alla parte inferiore del pianeta fino a quando il giocatore non si sposta il joystick di nuovo, anche se si spostano in una parte del pianeta dove quella direzione del joystick verrebbe ora interpretata come una direzione diversa.

Questa tecnica è spesso chiamata "blocco" del controllo del joystick e viene generalmente utilizzata nei giochi 3D quando la videocamera effettua una rotazione improvvisa (che non si desidera far cambiare improvvisamente direzione al giocatore), ma può anche essere utile qui in un gioco 2D, se un movimento della telecamera avrebbe altrimenti fatto sì che gli input non modificati del giocatore significassero improvvisamente qualcosa di diverso rispetto a prima.


1
Scorri verso il basso sul touch pad del mio laptop con due dita per scorrere verso l'alto o verso il basso? Se fossi su un dispositivo mobile, sarebbe in alto (perché le mie dita e la pagina sono "connesse") ma la stessa direzione su un mouse sarebbe in basso ... Sento questo disconnettersi ogni volta che uso un Mac ...
Draco18s

@ Draco18s Questo è un altro grande esempio! Windows ritiene che un input di scorrimento verso il basso significhi guardare più in basso nel documento , mentre Apple ritiene che un input di scorrimento verso il basso significhi spostare il documento stesso verso il basso (il che significa che vediamo di più verso la parte superiore del documento). Ma sui sistemi operativi desktop, Apple sapeva che molte persone avevano l'altro modello mentale per il funzionamento degli input di scorrimento, quindi implementarono entrambi e lasciarono che ogni utente scegliesse quello che preferiva. .
Trevor Powell,

Sì, puoi cambiarlo, conosco così tante persone che lo hanno impostato di default ("sposta il documento verso il basso"). Diamine, il laptop Windows che ho ricevuto per lavoro un mese fa lo aveva di default. L'ho disattivato rapidamente (ho invece attivato la funzione "edge scrolling", ma penso che lo spegnerò di nuovo perché è troppo lento: sul serio, l'intera altezza dell'area di scorrimento scorre .... cinque righe. ...)
Draco18s

2

Utilizzare W / S / A / D per l'ingresso (o su / giù / sinistra / destra). Considera l'input come una direzione a 8 vie (comprese le diagonali).

Quindi sposta il giocatore nella direzione valida (in senso orario o antiorario) più vicina alla direzione che viene premuta.


Penso che questa soluzione si adatterebbe meglio con un joystick rispetto a una tastiera, ma è comunque una soluzione possibile, tuttavia la sceglierei, perché dover muovere le dita in un cerchio su wasd può essere piuttosto difficile da giocare se si suona più di un'ora.
Satibel,

2

Un'opzione è invece di definire l'associazione tra chiave e direzione del movimento, per avere:

  • un tasto per spostarsi "in avanti" (nella direzione attualmente selezionata)
  • un tasto per "girare" (cambia direzione)

Ciò richiede che il personaggio abbia una "direzione" chiaramente visibile.

Non sono sicuro che abbia molto più senso rispetto ad altre opzioni qui, ma per ogni evenienza ...


1

Giù è dove si trova la gravità. Quindi, quando il personaggio giocatore si trova su un pianeta, ruota la telecamera insieme al movimento del personaggio giocatore in modo che il personaggio sia sempre in cima al pianeta.

Ma mentre ciò semplifica la navigazione sul pianeta, potrebbe disorientare il giocatore rispetto ad altri oggetti celesti. Questo è un compromesso che devi decidere tu stesso.


1

Se scegli di usare il movimento in senso orario / antiorario, ci sono diverse cose che puoi fare per rendere il sistema più facile da intuire per i tuoi giocatori.

Dai al personaggio importanti indicazioni distinguibili

Se il personaggio è mezzo blu e mezzo rosso, l'orientamento diventa facile da ricordare per i giocatori. Invece di dover identificare "in senso orario" o "antiorario", i giocatori si muovono nella direzione blu o rossa. Se il personaggio è sempre rivolto in una direzione (preferibilmente in senso orario, quindi il movimento è più intuitivo mentre in posizione verticale) è ancora meglio, perché chi parla inglese (e chiunque altro con una lingua da sinistra a destra) tende naturalmente ad associare "giusto" a 'avanti', rafforzando la connessione tra i comandi e la direzione del movimento.

Non lasciare mai che i personaggi smettano di muoversi

Finché muovi il tuo personaggio, è facile mantenere l'orientamento dei tuoi controlli. Dopo tutto, continuare a muoverti nella direzione in cui ti stai muovendo non prende alcuna azione e quando vuoi invertire i tuoi movimenti , c'è solo un'altra chiave da scegliere. È solo quando ricomincia a muoverti dopo esserti fermato che ti trovi di fronte a una scelta. Più a lungo fai una pausa, più sarà difficile riprendere in base a quello che stavi facendo prima. Riducendo la frequenza delle pause e le lunghezze delle pause puoi impedire ai giocatori di dimenticare come muoversi.


0

Esistono diversi approcci a questo.

1) Il modo in cui mi avvicinerei a questo richiederebbe sezioni del pianeta: i lati superiore, sinistro, destro e inferiore (più se desiderabile). E fallo dopo che l'utente preme una direzione, il personaggio continuerà ad andare in quella direzione finché non rilasciano quel pulsante. Quindi, se il personaggio era sul lato sinistro e l'utente premeva, il personaggio sarebbe andato in senso orario fino al rilascio. In questo modo non devi preoccuparti di cambiamenti nel quadro di riferimento mentre il personaggio si sta muovendo, solo dopo.

2) Un altro modo vorrebbe come "Amanti nello spazio-tempo pericoloso" si avvicinano. Con un joystick, piuttosto che avere la cornice di riferimento a seconda della superficie, ce l'hanno in modo tale che l'angolazione del joystick fosse il punto desiderato per il "personaggio". Quindi il loro quadro di riferimento era al centro del loro "pianeta". Dico carattere e pianeta, ma avevano parti modulari della nave all'esterno dove si determina dove vanno, cioè in quale direzione i propulsori sono indicati per muovere la nave.

3) Come lo hai progettato ora. Può anche essere un po 'utile, ma niente che i giocatori non abbiano mai visto prima. Potresti modificarlo, così sembra che il pianeta stia ruotando, quindi il gioco è sempre "in cima".

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.