Aqui estão as etapas básicas que você precisará seguir:
Primeiro, crie um objeto mundial (ou seja btDiscreteDynamicsWorld
) para conduzir sua simulação de física.
Você já deve ter uma classe como essa GameObject
que talvez armazene um modelo junto com sua caixa delimitadora e posição / orientação no mundo. Substitua as informações de posição / orientação por uma instância de um objeto de corpo físico (ou seja btRigidBody
) e, ao renderizar o modelo, use as informações fornecidas pelo corpo. Ao criar o corpo, você precisará fornecer sua forma de massa e colisão, que deve corresponder aos volumes delimitadores que você já possui. Eu já falei sobre isso na sua outra pergunta também.
Adicione cada um dos corpos do seu objeto de jogo ao objeto mundial .
Atualize a simulação pisando no mundo (ou seja, chamando stepSimulation
seu mundo).
E reserve um tempo para ler o manual, pois também possui muitas informações.
Editar para endereçar o comentário
Eu me encolho antes de perguntar, mas ... como faço as coisas muito básicas, como simplesmente incluir os arquivos certos no meu jogo? Se você precisar de detalhes, estou procurando os arquivos que irão lidar com colisões rígidas de corpos. Também muito obrigado pela ajuda até agora!
Bem, parece que em seu comentário você nunca trabalhou com bibliotecas C ++ externas antes. Já faz um tempo desde que fiz isso, mas é assim que me lembro do processo (no Visual Studio).
Para começar, cito o manual que já explica o que você precisa:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
E aqui estão as etapas básicas que você deverá seguir para atender às condições acima ...
1. Etapa de preparação
Primeiro, extraia o arquivo que você baixou para um diretório conhecido, por exemplo C:\Bullet
. Você precisará conhecer o caminho para esta pasta posteriormente.
Dentro, existem duas pastas que você precisará referenciar em seu projeto. A primeira é a src
pasta que contém os .h
arquivos de cabeçalho que você incluirá no seu código-fonte. A segunda é a lib
pasta que conterá os .lib
arquivos da biblioteca que você vinculará ao seu projeto. Observe que incluir e vincular são duas coisas diferentes.
Mas a lib
pasta deve estar vazia por enquanto, porque você ainda não criou o mecanismo. Portanto, consulte o manual sobre como criar o projeto usando o CMake e o Visual Studio, por exemplo. Está na página 7.
Depois de ter sucesso, você deve ter pelo menos três arquivos na lib
pasta: BulletDynamics.lib
, BulletCollision.lib
e LinearMath.lib
(eu estou supondo do manual). Agora, para fazer a conexão entre o Bullet e seu projeto ...
2. Incluir cabeçalhos
Primeiro de tudo, você precisará adicionar a C:\Bullet\src
pasta às opções de caminho de inclusão do seu projeto. Você pode fazer isso no Visual Studio clicando com o botão direito do mouse no seu projeto, navegando Configuration Properties -> C/C++ -> General -> Additional Include Directories
e gravando o caminho do diretório.
Depois de configurar isso, você pode simplesmente fazer #include “btBulletDynamicsCommon.h”
no seu código. Esse cabeçalho parece servir como um hub para todos os recursos necessários.
3. Bibliotecas de Link
Finalmente, você precisará vincular as bibliotecas mencionadas acima. Primeiro, em Configuration Properties -> Linker -> General -> Additional Library Directories
adicionar o caminho para a lib
pasta, ou em outras palavras C:\Bullet\lib
,.
Em seguida, Configuration Properties -> Linker -> Input-> Additional Dependencies
adicione o nome das bibliotecas à lista de dependências. Separe cada biblioteca com um ;
e não esqueça a extensão do arquivo. Assim, por exemplo, você pode adicionar isso para o final da lista: BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
.
Após isso, você poderá criar e executar seu projeto.
4.4 Integration overview
Eu sei que é muito espartano, mas descreve o processo básico. Portanto, se você olhar para isso e o código do exemplo Demos, não deverá ter muitos problemas.