Ось основні кроки, які вам потрібно виконати:
Спершу створіть світовий об’єкт (тобто 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, у вас не повинно виникнути занадто багато проблем.