Kha*_*war 4 android box2d andengine
我有一个动态的快速移动体(A).它应该与另一个身体(B)发生碰撞.A与B碰撞,但有时它会在没有碰撞的情况下通过B体.这是完全随机的行为.我必须有这种碰撞.请随意指导它为什么这样做.
由于在单个时间步长中的大运动,一个物体穿过另一个物体的效果被称为隧道效应.
Box2D使用动态和静态对象之间的连续碰撞检测来解决此问题.但是,您的情况(动态与动态)不会自动处理,因此在碰撞评估的确切时刻,您的对象是否恰好处于碰撞位置,这只是一个随机骰子.
来自Box2d手册:
通常情况下,动态物体之间不使用CCD.这样做是为了保持合理的性能.在某些游戏场景中,您需要使用动态物体来使用CCD.例如,您可能想要在一堆动态砖块上拍摄高速子弹.没有CCD,子弹可能穿过砖块.
Box2D中的快速移动物体可以标记为子弹.子弹将使用静态和动态物体执行CCD.你应该根据你的游戏设计决定哪些机构应该是子弹.如果您决定将身体视为子弹,请使用以下设置.
bodyDef.bullet = true;
子弹标志仅影响动态物体.
Box2D按顺序执行连续碰撞,因此子弹可能会错过快速移动的物体.
| 归档时间: |
|
| 查看次数: |
3440 次 |
| 最近记录: |