Ось основні кроки, які вам потрібно виконати:
Спершу створіть світовий об’єкт (тобто btDiscreteDynamicsWorld
) для керування фізичним моделюванням.
Ви вже повинні мати клас такого типу, GameObject
який, можливо, зберігає модель разом із її обмежувальним вікном та положенням / орієнтацією у світі. Замінити в положенні / орієнтації інформації з примірником фізика тіла об'єкта (тобто btRigidBody
) , а також при візуалізації моделі, використовувати інформацію , отриману від тіла замість цього. Створюючи кузов, вам потрібно надати його масі та формі зіткнення, яка повинна відповідати обмежувальним обсягам, які ви вже маєте. Я говорив про це і у вашому іншому запитанні .
Додайте все тіло вашого ігрового об’єкта до світового об’єкта.
Оновіть моделювання , перейшовши на світ (тобто закликаючи stepSimulation
до свого світу).
А також прочитайте посібник, оскільки в ньому також багато інформації.
Змінити для коментаря до адреси
Я плачу перед тим, як запитати, але ... як мені робити дуже елементарні речі, такі як просто включення правильних файлів у свою гру? Якщо вам потрібні конкретні відомості, я шукаю файли, які стосуватимуться жорстких зіткнень кузова. Також дуже дякую за допомогу поки що!
Що ж, із вашого коментаря видно, що ви ніколи раніше не працювали із зовнішніми бібліотеками C ++. Минуло деякий час, як я це зробив, але саме так я пам'ятаю процес (у Visual Studio).
Для початку я цитую посібник, який вже пояснює, що вам потрібно:
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
І ось основні кроки, які вам доведеться виконати, щоб виконати вищезазначені умови ...
1. Крок підготовки
Перш за все, витягніть файл, який ви завантажили, у відомий каталог, наприклад C:\Bullet
. Пізніше вам доведеться знати шлях до цієї папки.
Всередині є дві папки, на які вам потрібно буде вказати у своєму проекті. Перша - це src
папка, яка містить .h
файли заголовків, які ви включите у свій вихідний код. Друга - lib
папка, в якій будуть зберігатися .lib
бібліотечні файли, які ви посилаєте на ваш проект. Зауважте, що включення та зв’язування - це дві різні речі.
Але lib
папка наразі повинна бути порожньою, оскільки ви ще не побудували двигун. Тому зверніться до посібника про те, як створити проект, наприклад, за допомогою CMake та Visual Studio. Це на сторінці 7.
Після успіху, ви повинні мати принаймні три файли в lib
папці: BulletDynamics.lib
, BulletCollision.lib
і LinearMath.lib
(я припускаю , що з керівництва). Тепер, щоб встановити зв'язок між Bullet та вашим проектом ...
2. Включіть заголовки
Перш за все, вам потрібно буде додати C:\Bullet\src
папку до параметрів шляху включення вашого проекту. Це можна зробити у Visual Studio, клацнувши правою кнопкою миші на вашому проекті, перейшовши до нього Configuration Properties -> C/C++ -> General -> Additional Include Directories
та записавши шлях до каталогу.
Після налаштування ви можете просто зробити #include “btBulletDynamicsCommon.h”
свій код. Цей заголовок, здається, служить центром для всіх необхідних вам функцій.
3. Посилання бібліотек
Нарешті вам потрібно зв’язати вищезгадані бібліотеки. Frist під Configuration Properties -> Linker -> General -> Additional Library Directories
додати шлях до lib
папці, або іншими словами, C:\Bullet\lib
.
Потім, під Configuration Properties -> Linker -> Input-> Additional Dependencies
, додайте назву бібліотек до списку залежностей. Відокремте кожну бібліотеку з ;
і не забудьте розширення файлу. Так, наприклад, ви можете додати це в кінець списку: BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
.
Після цього ви повинні мати можливість створити і запустити свій проект.
4.4 Integration overview
я знаю, що це дуже спартанське, але він описує основний процес. Отже, якщо ви подивитеся на це і код прикладу Demos, у вас не повинно виникнути занадто багато проблем.