在bullet中一个非常普遍的应用是 针对两个物体发生碰撞时调用开发者自己提供的回调函数
比如球体碰撞到另一个球体 发出声音
下面是一个例子, 场景中有3种物体 球(动态),地板(静态),墙壁(静态)
球碰到墙和地板发出的声音不同。
所以需要设置这三种对象为不同类别,利用 collisionobj的userpointer来完成
int objclass[3] ={0,1,2};
boxBody->setUserPointer(&objclass[0]);
ground->setUserPointer(&objclass[1]);
wall->setUserPointer(&objclass[2]);
然后在update or render 中调用如下回调函数
主要的想法是从btPersistentManifold 中去获取当前narrowphase的碰撞对
但是要检查接触点,如果接触点大于0,则开始检查碰撞对象类别
根据类别再做不同的动作。
例子视频 http://www.youtube.com/watch?v=XXEClJjR05w
声音没录好, 等最近两天更新