Estos son los pasos básicos que deberá seguir:
Primero cree un objeto mundial (es decir btDiscreteDynamicsWorld
) para conducir su simulación física.
Ya debería tener una clase como GameObject
esa que tal vez almacene un modelo junto con su cuadro delimitador y su posición / orientación en el mundo. Reemplazar la posición / orientación de información con una instancia de una física cuerpo objeto (es decir btRigidBody
) y cuando se representa el modelo, utilizar la información proporcionada por el cuerpo en su lugar. Al crear el cuerpo, deberá proporcionar su forma de masa y colisión que debe coincidir con los volúmenes delimitadores que ya tiene. También he hablado de esto en tu otra pregunta .
Agrega cada uno de los cuerpos de tus objetos de juego al objeto mundial .
Actualice la simulación dando un paso al mundo (es decir, llamando stepSimulation
a su mundo).
Y tómese un tiempo para leer el manual, ya que también tiene mucha información.
Editar para abordar el comentario
Me estremezco antes de preguntar, pero ... ¿cómo hago las cosas más básicas, como simplemente incluir los archivos correctos en mi juego? Si necesita detalles, estoy buscando los archivos que se ocuparán de colisiones de cuerpos rígidos. También muchas gracias por la ayuda hasta ahora!
Bueno, parecería por su comentario que nunca antes ha trabajado con bibliotecas externas de C ++. Ha pasado un tiempo desde que hice esto, pero así es como recuerdo el proceso (en Visual Studio).
Para empezar, cito el manual que ya explica lo que necesita:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
Y aquí están los pasos básicos que deberá seguir para cumplir con las condiciones anteriores ...
1. Paso de preparación
En primer lugar, extraiga el archivo que descargó en un directorio conocido, por ejemplo C:\Bullet
. Necesitará saber la ruta a esta carpeta más adelante.
Dentro hay dos carpetas a las que deberá hacer referencia en su proyecto. La primera es la src
carpeta que contiene los .h
archivos de encabezado que incluirá en su código fuente. El segundo es la lib
carpeta que contendrá los .lib
archivos de la biblioteca que vinculará a su proyecto. Tenga en cuenta que incluir y vincular son dos cosas diferentes.
Pero la lib
carpeta debería estar vacía por ahora, porque todavía no ha construido el motor. Por lo tanto, consulte el manual sobre cómo construir el proyecto usando CMake y Visual Studio, por ejemplo. Está en la página 7.
Después de tener éxito, usted debe tener al menos tres archivos en la lib
carpeta: BulletDynamics.lib
, BulletCollision.lib
y LinearMath.lib
(supongo que seguirán en el manual). Ahora para hacer la conexión entre Bullet y su proyecto ...
2. Incluir encabezados
En primer lugar, deberá agregar la C:\Bullet\src
carpeta a las opciones de ruta de inclusión de su proyecto. Puede hacerlo en Visual Studio haciendo clic derecho en su proyecto, navegando Configuration Properties -> C/C++ -> General -> Additional Include Directories
y escribiendo la ruta del directorio allí.
Después de configurar eso, simplemente puede hacerlo #include “btBulletDynamicsCommon.h”
en su código. Ese encabezado parece servir como un centro para todas las funciones que necesita.
3. Bibliotecas de enlaces
Finalmente, deberá vincular las bibliotecas mencionadas anteriormente. Frist, bajo Configuration Properties -> Linker -> General -> Additional Library Directories
añadir la ruta de la lib
carpeta, o en otras palabras, C:\Bullet\lib
.
Luego, debajo Configuration Properties -> Linker -> Input-> Additional Dependencies
, agregue el nombre de las bibliotecas a la lista de dependencias. Separe cada biblioteca con un ;
y no olvide la extensión del archivo. Así, por ejemplo, es posible añadir esto al final de la lista: BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
.
Después de esto, debería poder construir y ejecutar su proyecto.
4.4 Integration overview
? Sé que es muy espartano, pero describe el proceso básico. Entonces, si mira eso y el código para el ejemplo Demos, entonces no debería tener demasiados problemas.