iOS 中引入Bullet 物理引擎
2013-02-27 10:50
323 查看
由于项目中要用到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是多余的,注释掉就可编译通过;
网上一堆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是多余的,注释掉就可编译通过;
相关文章推荐
- Bullet物理引擎不完全指南(Bullet Physics Engine not complete Guide)
- (转)Bullet 3D 物理引擎 简析(2)
- Bullet 物理引擎 详细分析 Dbvt (2)
- iOS开发——高级篇——UIDynamic 物理引擎
- 将 Android* Bullet 物理引擎移植至英特尔® 架构
- 整合Bullet物理引擎到Ogre on iPhone
- Bullet 物理引擎 详细分析 Dbvt (3)
- [原][OSG][osgBullet][osgworks][bullet]编译osgBullet尝试物理引擎
- Bullet 物理引擎 详细分析 Dbvt (2)
- Bullet 物理引擎 详细分析 Dbvt (4)
- Bullet物理引擎教程: helloworld
- Bullet 物理引擎 详细分析 Dbvt (4)
- iOS 之物理仿真引擎-UIDynamic简介(一)
- iOS物理引擎的说明
- 转:Bullet物理引擎不完全指南(Bullet Physics Engine not complete Guide)
- Bullet Physics Engine(物理引擎)中使用约束
- IOS学习笔记 运用UIDynamicAnimator仿真引擎来实现物理仿真(1)
- iOS 之物理仿真引擎-UIDynamic简介(二)
- Bullet物理引擎不完全指南(Bullet Physics Engine not complete Guide)
- Bullet物理引擎分析-约束分析之背景介绍