我正在开发一个简单的游戏,很像打砖块的游戏。
现在在与砖块碰撞时,玩家应该反弹,它工作正常。但是在与硬币碰撞时,玩家不应该反弹,硬币应该消失。
为此,我尝试了硬币的负恢复原状并像这样改变了 b2MixRestitution:
/// Restitution mixing law. Feel free to customize this.
inline float32 b2MixRestitution(float32 restitution1, float32 restitution2)
{
//return restitution1 > restitution2 ? restitution1 : restitution2;
float mixRest = 0.0f;
if(restitution1 > 0.0f && restitution2 > 0.0f)
mixRest = (restitution1>restitution2)?restitution1:restitution2;
else
mixRest = (restitution1<restitution2)?restitution1:restitution2;
return mixRest;
}
但仍然球员自然反弹。
对于硬币,恢复原状为 -1.00f。对于玩家,恢复原状为 0.50f。
这甚至可能对 Box2d 中的身体进行负恢复吗?
我只是想知道这对于像硬币(静态)和玩家(动态)这样的两个物体是否可能发生碰撞,动态物体在碰撞后不会反弹。
我可以这样做吗?