Я скачал файл релиза, найденный здесь , но я просто не уверен, с чего начать. В моей игре у меня есть несколько продолговатых и сфера, я хочу, чтобы все они сталкивались друг с другом. (Все они имеют сетки и связанные ограничивающие объемы)
редактировать - я только что понял, что с кубоидами на самом деле связаны AABB. Я думаю, мне придется изменить это по крайней мере.
Какие шаги мне нужно выполнить?
c++
directx
physics-engine
bullet-physics
SirYakalot
источник
источник
4.4 Integration overview
я знаю , что это очень спартанские , но это не описывается основной процесс. Так что, если вы посмотрите на это и код для примера Demos , то вам не должно быть слишком много проблем.Ответы:
Вот основные шаги, которые вам нужно выполнить:
Сначала создайте объект мира (т.е.
btDiscreteDynamicsWorld
), чтобы управлять своим физическим моделированием.У вас уже должен быть такой класс,
GameObject
который, возможно, хранит модель вместе с ее ограничительной рамкой и положением / ориентацией в мире. Заменить в положении / ориентации информации с экземпляром физика тела объекта (то естьbtRigidBody
) , а также при визуализации модели, использовать информацию , полученную от тела вместо этого. При создании тела вам нужно будет указать его массу и форму столкновения, которые должны соответствовать ограничивающим объемам, которые у вас уже есть. Я говорил об этом и в вашем другом вопросе .Добавьте каждое тело вашего игрового объекта в мировой объект.
Обновите симуляцию , шагнув по миру (т.е. призвав
stepSimulation
свой мир).И потратьте некоторое время на прочтение руководства, так как оно содержит много информации.
Изменить на адрес комментария
Что ж, из вашего комментария станет ясно, что вы никогда раньше не работали с внешними библиотеками C ++. Прошло много времени с тех пор, как я это сделал, но так я помню этот процесс (в Visual Studio).
Для начала приведу руководство, которое уже объясняет, что вам нужно:
И вот основные шаги, которые вы должны будете выполнить, чтобы выполнить вышеуказанные условия ...
1. Этап подготовки
Прежде всего, извлеките загруженный файл в известный каталог, например
C:\Bullet
. Вам нужно будет узнать путь к этой папке позже.Внутри есть две папки, на которые вам нужно будет ссылаться в вашем проекте. Первая - это
src
папка, в которой находятся.h
заголовочные файлы, которые вы включите в свой исходный код. Вторая - этоlib
папка, в которой будут храниться.lib
файлы библиотеки, с которыми вы будете связывать свой проект. Обратите внимание, что включение и связывание - это две разные вещи.Но
lib
папка должна быть пустой на данный момент, потому что вы не построили двигатель еще. Так обратитесь к руководству о том , как построить проект с использованием CMake и Visual Studio, например. Это на странице 7.После успеха, вы должны иметь по крайней мере три файла в
lib
папке:BulletDynamics.lib
,BulletCollision.lib
иLinearMath.lib
(я предполагаю , что из руководства). Теперь , чтобы сделать связь между пулей и вашим проектом ...2. Включить заголовки
Прежде всего, вам нужно добавить
C:\Bullet\src
папку для вашего проекта включают в себя варианты пути. Вы можете сделать это в Visual Studio , щелкнув правой кнопкой мыши на вашем проекте, перейдяConfiguration Properties -> C/C++ -> General -> Additional Include Directories
и писать путь к каталогу в там.После установки этого, вы можете просто сделать
#include “btBulletDynamicsCommon.h”
на вашем коде. Это заголовок кажется, служит в качестве концентратора ко всем функциям вам требуется.3. Библиотеки Link
Наконец вам нужно связать библиотеки , упомянутые выше. Frist под
Configuration Properties -> Linker -> General -> Additional Library Directories
добавить путь кlib
папке, или другими словами,C:\Bullet\lib
.Затем, под
Configuration Properties -> Linker -> Input-> Additional Dependencies
, добавьте имя библиотеки в список зависимостей. Разделяйте библиотека с;
и не забудьте расширение файла. Так, например, вы можете добавить это в конец списка:BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
.После этого вы должны быть в состоянии построить и запустить свой проект.
источник