Настройка Bullet Physics для iOS в XCode 4 - PullRequest
3 голосов
/ 04 июля 2011

Итак, я скачал последний пакет Bullet Physics (2.78) и прочитал документацию «Приступая к работе», в которую даже входит статья по настройке проекта в XCode с нуля (но не для iOS и XCode 4). , что я и использую). Несмотря на это, я все еще не могу настроить это.

Ниже приведены шаги, которые я сейчас предпринимаю:

  1. Я добавляю Bullet Physics "src" папка в классах Xcode

  2. Я включаю физику пули путь к папке "src" в отладке и выпустить "Пути поиска заголовка" в XCode

  3. Я добавляю #include "btBulletDynamicsCommon.h" в файл, где я хочу использовать Bullet Физика

  4. Я изменяю файл Objective C на Objective-C ++, изменив свой файл удлинение от «м» до «мм». Это файл, в котором "btBulletDynamicsCommon.h" является включено

После того, как я следую этим шагам, компилятор жалуется на отсутствующие файлы (первые несколько ошибок, при попытке сборки отображается 999+ ошибок).

Это первые несколько заголовков, отсутствующих в btSoftBodySolverVertexBuffer_DX11.h:

#include <windows.h>
#include <crtdbg.h>
#include <d3d11.h>
#include <d3dx11.h>
#include <d3dcompiler.h>

Теперь я довольно новичок в XCode и iOS, так что тот факт, что они отсутствуют, на самом деле не говорит мне много о том, как решить эту проблему, и это заставляет меня даже задаться вопросом, нужны ли они вообще для iOS разработка с добавлением "DX11" к имени файла, в котором возникла эта проблема.

Итак, что бы я оценил, это либо информация о том, что возможно не так, либо информация о том, как настроить Bullet Physics для использования с iOS в XCode 4, с нуля.

Спасибо.

Обновление: я полностью удалил DX11 и OpenCL, и теперь я могу скомпилировать после шага 4 выше. Я еще не проверял среду Bullet Physics, чтобы увидеть, работает ли она без проблем. Но теперь это заставляет меня спросить:

Какие конкретные исходные файлы / папки строго необходимы для запуска Bullet Physics в iOS?

Ответы [ 4 ]

4 голосов
/ 14 июня 2012

Существует учебник с пошаговой инструкцией по интеграции Bullet Physics с iOS и платформой Apple GLKit http://www.informit.com/articles/article.aspx?p=1914612

Пример кода, который можно загрузить с помощью учебника, поможет вам быстро начать работу и создаст интересную симуляцию.

4 голосов
/ 31 августа 2011

Как вставить Bullet Physics в iOS: Образец кода iOS OpenGL BulletPhysics

Загрузите образец кода или следуйте новой форме проекта Xcode с шаблоном openGL для iOS:

  1. Загрузить физику пули ... поместите ее в папку, как показано ниже:

* (обратите внимание, что для проекта есть папка, содержащая файл проекта Xcode)

/MyProjectFolder/bullet-2.78/
/MyProjectFolder/MyProject/MyProject.xcproj

1,5. Запустите CMake в каталоге физики, чтобы скомпилировать фреймворки (при условии, что вы уже установили cmake CMake ). Этот шаг необязателен для загруженного примера кода, поскольку он уже включил в него скомпилированные фреймворки .... подайте 100 мегабайт, но что в наши дни составляет 100 мегабайт?

cmake . -G "Unix Makefiles" -DINSTALL_LIBS=ON -DBUILD_SHARED_LIBS=ON     -DFRAMEWORK=ON  -DCMAKE_OSX_ARCHITECTURES='i386;x86_64'     -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/Library/Frameworks     -DCMAKE_INSTALL_NAME_DIR=/Library/Frameworks -DBUILD_DEMOS:BOOL=OFF
make -j4
sudo make install
  1. Перейдите в свой MyProject.xcproj и откройте в Xcode ...

в XCode перейдите к любому файлу, в который вы хотите добавить физический код ... вы должны понимать, что файлы cpp - это c ++, а файлы .m .h - обычно какао. Вы должны изменить класс, для которого вы хотите добавить код физического движка, чтобы расширение .mm означало, что оно должно быть скомпилировано как код Objective-C ++ ...

  1. В конкретном классе, который вы хотите добавить физику, которая теперь является файлом Objective-C ++ или файлом cpp, добавьте строку

    #include "btBulletDynamicsCommon.h"
    

и вы должны скомпилировать ... ошибка в том, что файл не найден ...

  1. Затем перейдите в MyProjectFolder / bullet-2.78 / src и перетащите папку src в ваш проект.
  2. Удалите папку с именем BulletMultiThread ... это устранит ошибку при попытке скомпилировать некоторые файлы openCL (.cl)

  3. Последний шаг, скопируйте следующие фреймворки из папки src вашей физической установки пули в ваш проект:

    / MyProjectFolder / пуля 2,78 / LinearMath / LinearMath.framework /MyProjectFolder/bullet-2.78/BulletCollision/BulletCollision.framework /MyProjectFolder/bullet-2.78/LinearMath/LinearMath.framework

  4. Build and Run ... теперь должна без проблем скомпилироваться для iOS и Mac ...

3 голосов
/ 07 июня 2012

Я нашел ответ Orbitus007 немного мисс ведущий. Вы можете просто добавить физические рамки пули в проект вместо того, чтобы добавлять всю папку src в ваш проект. добавление папки src дало мне ошибки, а просто добавление фреймворков заставило мой проект компилироваться

должно выглядеть примерно так http://imgur.com/CINtb

тогда вы можете просто пойти

#import "BulletDynamics/btBulletDynamicsCommon.h"

вам все равно понадобится ваш файл с расширением .mm

Кроме того, я обнаружил, что у меня возникла ошибка при попытке использовать cmake, говорящая что-то о xcode-select. если у вас получилось, попробуйте запустить эту команду в терминале, затем попробуйте снова

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

но кроме этого, его ответ помог мне заставить его работать

0 голосов
/ 06 июля 2011

ОК, так что в качестве обновления и чтобы ответить на мой собственный вопрос:

Я закончил тем, что удалил папки DX11 и OpenCL и их содержимое. Это позволило мне выполнить несколько тестов Hello World.

Я все еще приветствую более утвердительные ответы, поскольку мне кажется странным, что я не могу найти какую-либо документацию, касающуюся этого, для использования iOS.

...