Ecco i passaggi di base che dovrai seguire:
Innanzitutto crea un oggetto mondiale (ad es. btDiscreteDynamicsWorld
) Per guidare la tua simulazione fisica.
Dovresti già avere una classe come quella GameObject
che forse memorizza un modello insieme al suo rettangolo di selezione e alla posizione / orientamento nel mondo. Sostituisci le informazioni sulla posizione / orientamento con un'istanza di un oggetto del corpo fisico (ad es. btRigidBody
) E, nel rendering del modello, usa invece le informazioni fornite dal corpo. Quando crei il corpo, devi fornire la sua forma di massa e di collisione che dovrebbe corrispondere ai volumi limite che hai già. Ne ho parlato anche nell'altra tua domanda .
Aggiungi ciascuno dei corpi dell'oggetto di gioco all'oggetto mondo .
Aggiorna la simulazione facendo un passo nel mondo (es. Chiamando stepSimulation
il tuo mondo).
E prenditi un po 'di tempo per leggere il manuale in quanto contiene anche molte informazioni.
Modifica per rispondere al commento
Mi arrabbio prima di chiedere ma ... come posso fare le cose molto basilari come includere semplicemente i file giusti nel mio gioco? Se hai bisogno di dettagli sto cercando i file che gestiranno le collisioni del corpo rigido. Inoltre, grazie mille per l'aiuto finora!
Bene, dal tuo commento sembrerebbe che non hai mai lavorato con librerie C ++ esterne prima. È passato un po 'di tempo da quando l'ho fatto, ma è così che ricordo il processo (in Visual Studio).
Per i principianti cito il manuale che spiega già di cosa hai bisogno:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
Ed ecco i passaggi di base che dovrai seguire per soddisfare le condizioni sopra ...
1. Fase di preparazione
Prima di tutto, estrai il file scaricato in una directory nota, ad es C:\Bullet
. Dovrai conoscere il percorso di questa cartella in seguito.
All'interno ci sono due cartelle che dovrai fare riferimento nel tuo progetto. La prima è la src
cartella che contiene i .h
file di intestazione che includerai nel tuo codice sorgente. La seconda è la lib
cartella che conterrà i .lib
file della libreria che collegherai al tuo progetto. Si noti che l'inclusione e il collegamento sono due cose diverse.
Ma la lib
cartella dovrebbe essere vuota per ora, perché non hai ancora creato il motore. Quindi fai riferimento al manuale su come costruire il progetto usando CMake e Visual Studio per esempio. È a pagina 7.
Dopo avere successo, si dovrebbe avere almeno tre file nella lib
cartella: BulletDynamics.lib
, BulletCollision.lib
e LinearMath.lib
(sto indovinando dal manuale). Ora per stabilire la connessione tra Bullet e il tuo progetto ...
2. Includi intestazioni
Prima di tutto, dovrai aggiungere la C:\Bullet\src
cartella alle opzioni del percorso di inclusione del tuo progetto. Puoi farlo in Visual Studio facendo clic con il tasto destro del mouse sul tuo progetto, navigando Configuration Properties -> C/C++ -> General -> Additional Include Directories
e scrivendo il percorso della directory lì dentro.
Dopo averlo configurato, puoi semplicemente fare #include “btBulletDynamicsCommon.h”
il tuo codice. Tale intestazione sembra fungere da hub per tutte le funzionalità richieste.
3. Link Libraries
Infine dovrai collegare le librerie sopra menzionate. Frist, sotto Configuration Properties -> Linker -> General -> Additional Library Directories
aggiungere il percorso della lib
cartella o in altre parole, C:\Bullet\lib
.
Quindi, sotto Configuration Properties -> Linker -> Input-> Additional Dependencies
, aggiungi il nome delle librerie all'elenco delle dipendenze. Separare ogni libreria con a ;
e non dimenticare l'estensione del file. Così, per esempio, si potrebbe aggiungere questo alla fine della lista: BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
.
Dopo questo dovresti essere in grado di costruire ed eseguire il tuo progetto.
4.4 Integration overview
So che è molto spartano ma descrive il processo di base. Quindi, se guardi quello e il codice per le Demo di esempio, non dovresti avere troppi problemi.