Simulazione di un oggetto che galleggia sull'acqua


9

Sto lavorando a un gioco di pesca top down. Voglio implementare un po 'di rilevamento fisico e di collisione per quanto riguarda la barca che si muove intorno al lago. Vorrei essere in grado di implementare la spinta dal motore principale o da quello per pesca alla traina, l'effetto del vento sull'oggetto e il trascinamento dell'acqua sull'oggetto.

Ho guardato il motore fisico più debole, ma non avendo alcuna esperienza con un motore fisico, non sono abbastanza sicuro che il più debole sia adatto a questo tipo di cose (La maggior parte delle demo sembrano essere l'applicazione della gravità a una verticale modello di tipo top / down).

Il motore più debole sarebbe adatto? o un motore diverso sarebbe più adatto?

Risposte:


5

Sto facendo questo tipo di cose con il proiettile , ma la stessa tecnica potrebbe essere utilizzata con qualsiasi motore fisico. La galleggiabilità è modellata attaccando galleggianti immaginari al corpo che applicano semplicemente una forza secondo la loro profondità sotto la superficie in punti discreti.

Nel timestep, ciascun galleggiante verifica il livello dell'acqua nella sua posizione, quindi applica una forza al corpo rigido della barca nella sua posizione rispetto alla barca. Immagino ogni galleggiante come un cilindro sempre verticale, in relazione all'orientamento della barca. La forza è proporzionale a quanto sono profondamente immersi, fino a un massimo definito dal loro volume.

Al momento la barca ha solo 4 galleggianti: prua, poppa, babordo e tribordo. Ho impostato manualmente i loro volumi per fornire una forza sufficiente per contrastare la gravità, quindi ho regolato le posizioni e le lunghezze dei cilindri per modificare il modo in cui la barca si muove. Ho una vaga idea di generare i galleggianti imballando i cilindri nel volume del corpo rigido in qualche modo, ma è qualcosa per il futuro.

Una breve demo di una barca che naviga tra le onde è qui su YouTube .


0

La fisica più debole supporta tutti i tipi di applicazione di forza e intertia, quindi non sarebbe un problema, non sono sicuro al 100% se Farseer già supporta i corpi fluidi (per l'acqua) ma se supportato, dovrebbe essere ok. (Nota anche che Farseer è un motore fisico 2D)


Penso che stiano aggiungendo il supporto per i fluidi nella prossima versione di Farseer (3.3)
brainydexter
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.