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 のボディに対して負の反発を持つことさえ可能ですか?

衝突することを意図したコイン(静的)とプレーヤー(動的)のような2つのボディでこれが可能かどうかを知りたいだけです。動的なものは衝突後に跳ね返りません。

これはできますか?

4

2 に答える 2

0

コインにBox2dのボディを使うべきではないと思います。スプライトのみを使用してください。いくつかのアルゴリズムを使用して、プレーヤーとコインの間の衝突を検出します。

たとえば、プレーヤーの本体にリンクされているスプライトとコインスプライトの位置を比較できます。

于 2013-01-03T10:24:58.723 に答える
0

コインのフィクスチャをセンサーとして設定する必要があります/

于 2013-10-27T12:46:11.193 に答える