关于Cocos2dx 物理引擎封装Physics的问题

在使用Cocos2d-x封装的物理引擎的时候我发现这个引擎使用起来比较简单。使用过程中遇到了几个问题,希望高人可以帮我解答一下。

1、我设置了小球不受重力影响,设置了恢复力为1.希望小球可以保持匀速运动,世界中所有物体也都设置了恢复力为1,为什么有时候碰撞了,小球还是会减速。更有时候小球在发生碰撞以后静止的情况。

2、在小球和物体发生碰撞以后,我怕判断他后面的运动轨迹和碰撞前的夹角。然后让球偏转,这个偏转力在什么时候需要清楚掉呢。

3、小球的速度达到一定数值的时候它会穿透其他物品。

期待您的回答。 谢谢。

穿透问题。。。3.3版本有优化,传说是解决了,但是我试验了下,依然穿透

this->scheduleOnce(schedule_selector(TollgateScene::updatePhysicsStart),3.0f);

this->schedule(schedule_selector(TollgateScene::logic));

void TollgateScene::updatePhysicsStart(float time)

{

_world->setAutoStep(false);

schedule(schedule_selector(TollgateScene::updatePhysics));

}

void TollgateScene::updatePhysics(float time)

{

for (int i = 0;i<3;++i)

{

_world->setAutoStep(1/180.0f);

}

}


请问速度变慢的问题解决了吗?我的在电脑上测试速度不会变慢,但是在安卓上测试就会经常变慢。

穿透问题给你提供一个思路,呵呵。

一般的碰撞检测,刚体检测,都是依靠当帧检测两个物体的位置信息判断交叠。假设第一帧,A在Vec3(1,0,0),向着Vec3(-1,0,0)运动,你期望它在经过Vec3(0,0,0)的时候被检测到碰撞。

OK,但是A物体的速度为每帧X轴移动了5,下一帧的时候,它已经在Vec3(-4,0,0)

那么抱歉,两帧下来,你的检测都没起到作用,小球就穿透过去了,就这么简单,呵呵