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 GameObjectque 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 stepSimulationseu 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 srcpasta que contém os .harquivos de cabeçalho que você incluirá no seu código-fonte. A segunda é a libpasta que conterá os .libarquivos da biblioteca que você vinculará ao seu projeto. Observe que incluir e vincular são duas coisas diferentes.
Mas a libpasta 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 libpasta: BulletDynamics.lib, BulletCollision.libe 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\srcpasta à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 Directoriese 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 Directoriesadicionar o caminho para a libpasta, ou em outras palavras C:\Bullet\lib,.
Em seguida, Configuration Properties -> Linker -> Input-> Additional Dependenciesadicione 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 overviewEu 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.