0

我正在开发一个简单的游戏,很像打砖块的游戏。

现在在与砖块碰撞时,玩家应该反弹,它工作正常。但是在与硬币碰撞时,玩家不应该反弹,硬币应该消失。

为此,我尝试了硬币的负恢复原状并像这样改变了 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 中的身体进行负恢复吗?

我只是想知道这对于像硬币(静态)和玩家(动态)这样的两个物体是否可能发生碰撞,动态物体在碰撞后不会反弹。

我可以这样做吗?

4

2 回答 2

0

我认为你不应该使用 Box2d 的身体作为硬币。仅使用精灵。使用一些算法来检测玩家和硬币之间的碰撞。

例如,您可以比较链接到玩家身体和硬币精灵的精灵的位置。

于 2013-01-03T10:24:58.723 回答
0

您应该将硬币的固定装置设置为传感器/

于 2013-10-27T12:46:11.193 回答