Come manterresti una vista dall'alto di un treno sui binari con il motore fisico Box2D?

StackOverflow https://stackoverflow.com/questions/616375

  •  03-07-2019
  •  | 
  •  

Domanda

Penso che sarebbe divertente modellare una vista dall'alto di un treno seguendo un binario, attraversando interruttori e così via, usando una libreria di fisica come Box2D. Di quali giunti e motori avrei bisogno per farlo funzionare?

Sono curioso di sapere come implementare le forze necessarie per far sì che l'auto segua una pista spline in modo che possa urtare altri vagoni del treno, pedoni, DeLoreani ecc. ; per ogni momento il passaggio creerebbe forze eccessive nel motore fisico. Se ho capito bene, devi attaccare l'auto sulla pista con una forza, vincolarne l'angolo per tendere verso il parallelo con la pista con un'altra (o attaccare la parte anteriore e posteriore dell'auto alla pista con due forze) e creare un'altra forza per spingere il treno in avanti. Sto cercando alcuni dettagli su come realizzare queste cose.

È stato utile?

Soluzione

Credo che sarebbe più facile senza " real " fisica, come il movimento della palla di giochi come Luxor o Tumble Bugs. Significato: lascia che il treno segua una spline definita dai binari.

L'uso dei phyisc è probabilmente eccessivo per fare in modo che un treno segua una pista e potrebbe portare a tutti i tipi di effetti collaterali indesiderati, tra cui movimento a scatti, deragliamento del treno, treno che si blocca su incroci, ecc.

Puoi comunque unire i singoli vagoni insieme usando le articolazioni fisiche. Assicurati solo che solo la locomotiva riceva forze di accelerazione, che il resto del treno segua o sia spinto ma rimanga sulla spline.

Altri suggerimenti

Perché sei preoccupato di tenerlo " sulle tracce " ;? Dove andrà? La gravità dovrebbe tenerlo basso, l'intersezione degli oggetti dovrebbe tenerlo alto, e quindi le uniche direzioni di cui devi preoccuparti sono in avanti e indietro. Ecco dove entra un motore e il gioco è fatto. Il resto sono decorazioni.

In risposta alla modifica del problema:

Siderails. E avere il treno abbastanza lungo / abbastanza rigido rispetto alla sua larghezza da poter percorrere gli incroci (avvicinarli agli angoli retti per ridurre al minimo i problemi di attraversamento.

Una vista dall'alto verso il basso (ovvero vedere il treno dal cielo) in realtà non richiede un motore fisico 2D - se ti capisco correttamente. In effetti, sembra che non sarebbe davvero d'aiuto con il problema (se vuoi una simulazione del treno), ma forse forse vuoi solo provarlo per divertimento. :)

Tuttavia, che ne dici di mettere qualcosa come un giunto scorrevole sul treno e le macchine, e un motore sulla locomotiva. L'articolazione del cursore potrebbe richiedere qualche implementazione speciale; probabilmente vuoi correre il treno lungo una spline e non un segmento di rette, giusto?

Una sorta di giunto sferico collegherebbe le macchine insieme.

L'implementazione non è così dura che sono stato in grado di prototipare qualcosa in poche ore che fa il lavoro di base. Richiederà molto lavoro per farlo funzionare senza intoppi, ma essenzialmente è solo "siderails."

Essendo dall'alto in basso ovviamente devi prima disattivare la gravità in Box2D. Secondo, costruisci un treno. Tratta le ruote del treno come le ruote di un'auto e all'improvviso diventerà molto più semplice. Per le tracce hai alcune scelte:

  • Crea il tuo oggetto di gioco (non nel mondo box2D) che è una linea semplice che il treno seguirà quindi "seguirà" (puoi utilizzare i motori sulle ruote del treno per "sterzare" verso la linea). Quindi sovrapponi la linea con un bel largo "binario". grafica e hai un sistema ben simulato. Di 'alle ruote di spegnersi se si allontana troppo dalla linea e presto, hai un deragliamento.

  • Crea binari fisici effettivi - binari esterni (come le sponde laterali) che i treni "ruotano". si imbatterà in. Dovranno avere curve delicate in questo caso, il che potrebbe essere molto difficile date le risorse limitate che hai (simulare una bella curva lenta dalle scatole in Box2D è approssimativo sul processore)

Quindi lascia andare il tuo treno!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top