Voici les étapes de base que vous devrez suivre:
Créez d' abord un objet mondial (c'est btDiscreteDynamicsWorld
-à- dire ) pour piloter votre simulation physique.
Vous devriez déjà avoir une classe telle que GameObject
celle qui stocke peut-être un modèle avec sa boîte englobante et sa position / orientation dans le monde. Remplacer la position / orientation d' informations avec une instance d'un physique corps objet ( par exemple btRigidBody
) et lors du rendu du modèle, utiliser les informations fournies par l'organisme à la place. Lors de la création du corps, vous devrez fournir sa masse et sa forme de collision qui devraient correspondre aux volumes limites que vous avez déjà. J'en ai également parlé dans votre autre question .
Ajoutez chacun des corps de votre objet de jeu à l' objet monde .
Mettez à jour la simulation en parcourant le monde (c'est-à-dire en faisant appel stepSimulation
à votre monde).
Et prenez le temps de lire le manuel car il contient aussi beaucoup d'informations.
Modifier pour répondre au commentaire
Je grince des dents avant de demander, mais ... comment faire les trucs très basiques comme simplement inclure les bons fichiers dans mon jeu? Si vous avez besoin de détails, je recherche les fichiers qui traiteront des collisions de corps rigides. Merci également pour l'aide jusqu'à présent!
Eh bien, il semblerait d'après votre commentaire que vous n'avez jamais travaillé avec des bibliothèques C ++ externes auparavant. Cela fait un moment que je n'ai pas fait ça, mais c'est ainsi que je me souviens du processus (dans Visual Studio).
Pour commencer, je cite le manuel qui explique déjà ce dont vous avez besoin:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
Et voici les étapes de base que vous devrez suivre pour remplir les conditions ci-dessus ...
1. Étape de préparation
Tout d'abord, extrayez le fichier que vous avez téléchargé dans un répertoire connu, par exemple C:\Bullet
. Vous devrez connaître le chemin d'accès à ce dossier ultérieurement.
À l'intérieur, il y a deux dossiers que vous devrez référencer dans votre projet. Le premier est le src
dossier qui contient les .h
fichiers d'en-tête que vous allez inclure dans votre code source. Le second est le lib
dossier qui contiendra les .lib
fichiers de bibliothèque que vous lierez à votre projet. Notez que l'inclusion et la liaison sont deux choses différentes.
Mais le lib
dossier doit être vide pour l'instant, car vous n'avez pas encore construit le moteur. Référez-vous donc au manuel sur la façon de construire le projet en utilisant CMake et Visual Studio par exemple. C'est à la page 7.
Une fois que vous réussissez, vous devez avoir au moins trois fichiers dans le lib
dossier: BulletDynamics.lib
, BulletCollision.lib
et LinearMath.lib
(je devine du manuel). Maintenant, pour faire le lien entre Bullet et votre projet ...
2. Inclure les en-têtes
Tout d'abord, vous devrez ajouter le C:\Bullet\src
dossier aux options de chemin d'inclusion de votre projet. Vous pouvez le faire dans Visual Studio en cliquant avec le bouton droit sur votre projet, en naviguant Configuration Properties -> C/C++ -> General -> Additional Include Directories
et en écrivant le chemin du répertoire là-dedans.
Après avoir configuré cela, vous pouvez simplement faire #include “btBulletDynamicsCommon.h”
votre code. Cet en-tête semble servir de plaque tournante à toutes les fonctionnalités dont vous avez besoin.
3. Lier les bibliothèques
Enfin, vous devrez lier les bibliothèques mentionnées ci-dessus. Frist, sous Configuration Properties -> Linker -> General -> Additional Library Directories
ajouter le chemin d'accès au lib
dossier, ou en d' autres termes, C:\Bullet\lib
.
Ensuite, sous Configuration Properties -> Linker -> Input-> Additional Dependencies
, ajoutez le nom des bibliothèques à la liste des dépendances. Séparez chaque bibliothèque par un ;
et n'oubliez pas l'extension du fichier. Ainsi , par exemple, vous pouvez ajouter cela à la fin de la liste: BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
.
Après cela, vous devriez pouvoir créer et exécuter votre projet.
4.4 Integration overview
Je sais que c'est très spartiate mais il décrit le processus de base. Donc, si vous regardez cela et le code de l'exemple de démonstration, vous ne devriez pas avoir trop de problèmes.