由于项目中要用到3D物理引擎,比较了一下,最终选择了开源的3D物理引擎Bullet;(Bullet 的主页: http://bulletphysics.org/wordpress/)
网上一堆Bullet 引擎的入门介绍,这里就不再多说,直接上步骤:
1. 将src文件夹中的文件拷贝到iOS工程目录,删除掉源文件中的makefile 等不相关文件;
2. 将文件拖入工程后进行编译测试;可能遇到如下问题;
* 提示无法找到相关头文件;
原因是Bullet源码中的头文件包含使用的文件夹路径
#include
"LinearMath/btVector3.h"
系统编译时无法找到文件夹,此时需要在工程设置中修改 Header search Paths
为源码相对路径,例如 "$(SRCROOT)/Dice/Bullet/." (源码文件位于Bullet目录下)
* btVector3.cpp 文件编译报错,提示将 -1 赋值给Unsigned char 等涉及截取长度的类型转换问题;
由于编译器Dialect 问题,此时需要将C++ Language Dialect 更换为Compiler Default 或其他;
实践中发现C++11 会有类似问题;
* 提示btVector3.cpp文件无法识别 memset() 函数;
原因是没有包含#include <strings.h> 头文件,包含此文件即可;
* 提示btScalar.h 预处理有问题;原因是
在2.81版本中此文件第210行的#end是多余的,注释掉就可编译通过;