3

所以,我已经下载了最新的 Bullet Physics 包 (2.78) 并阅读了“入门”文档,其中甚至包括一篇关于从头开始在 XCode 中设置项目的文章(但不针对 iOS 或 XCode 4,即我正在使用什么)。即便如此,我仍然无法设置它。

以下是我目前正在采取的步骤:

  1. 我在 Xcode 的类中添加 Bullet Physics“src”文件夹

  2. 我在调试中包含 Bullet Physics“src”文件夹路径并在 XCode 中发布“标题搜索路径”

  3. 我将 #include "btBulletDynamicsCommon.h" 添加到要使用 Bullet Physics 的文件中

  4. 我通过将文件扩展名从“m”更改为“mm”,将 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”。

因此,我希望了解可能出现问题的信息,或者有关如何从头开始在 XCode 4 中设置用于iOS的 Bullet Physics 的信息。

谢谢。

更新:我已经完全删除了 DX11 和 OpenCL,现在我可以在上面的第 4 步之后进行编译。我还没有实际测试过 Bullet Physics 框架,看看它是否可以正常工作。但这现在让我问:

在 iOS 中运行 Bullet Physics 所必需的特定源文件/文件夹是什么?

4

4 回答 4

4

如何将 Bullet Physics 插入 iOS:iOS OpenGL BulletPhysics 示例代码

下载示例代码或按照带有 iOS openGL 模板的新项目表单 Xcode 进行操作:

  1. 下载子弹物理...将其放入如下文件夹中:

*(请注意,该项目有一个文件夹,其中包含 Xcode 项目文件)

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

1.5。在物理目录中运行 CMake 以编译框架(假设您已经安装了 cmake CMake)这一步对于我上传的示例代码是可选的,因为它已经包含了已编译的框架......这使得文件 100 megs 但什么是反正这些天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/bullet-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...

于 2011-08-30T21:51:17.013 回答
4

有一个教程,逐步说明将 Bullet Physics 与 iOS 和 Apple 的 GLKit 框架集成http://www.informit.com/articles/article.aspx?p=1914612

可随本教程下载的示例代码将帮助您快速入门并生成有趣的模拟。

于 2012-06-14T05:49:17.473 回答
3

我发现 Orbitus007 的回答有点失误。您可以将子弹物理框架添加到项目中,而不是将整个 src 文件夹添加到您的项目中。添加 src 文件夹给了我错误,只需添加框架就可以编译我的项目

应该看起来像这样http://imgur.com/CINtb

然后你就可以走了

#import "BulletDynamics/btBulletDynamicsCommon.h"

您仍然需要使用 .mm 扩展名的文件

另外,我发现在尝试使用 cmake 说有关 xcode-select 的内容时出现错误。如果你得到它尝试在终端中运行这个命令,然后再试一次

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

但除此之外,他的回答帮助我让它工作

于 2012-06-07T14:10:06.823 回答
0

好的,作为更新并回答我自己的问题:

我最终删除了文件夹 DX11 和 OpenCL 及其内容。到目前为止,这使我能够运行一些 Hello World 测试。

我仍然欢迎更自信的答案,因为我似乎很奇怪我找不到任何涵盖 iOS 使用的文档。

于 2011-07-06T01:50:57.400 回答