2

重力: (x=0, y=地球)

恒久的な跳ねるボールを作りたいです。たとえば、座標 (200, 200) に設定すると、地面に落ちた後、跳ね返り、begin (200, 200) と同じ座標に戻ります。密度、弾性、摩擦で遊んでみたところ、同様の動作が得られましたが、変化しています. 私はよくグーグルで調べましたが、問題は浮動小数点数の丸めが原因であることがわかりました。質問: エンジンで変化している値と、その値がデルタを超えた後にリセットする必要がある値はどれですか?

2 番目の質問: フィクスチャを次のように設定すると、なぜ、fixtures(density=1, Elasticity=1, Friction=0) は同じ高さでバウンドせず、バウンスするたびに高くバウンドするのでしょうか? 弾力性を 0,981f のように設定します

3 番目の質問: 1 つのオブジェクト フィクスチャが 2 番目のオブジェクト フィクスチャにどのように依存するか? 例: ball(1f, 0.6f, 1f) wall(1f, 0.6f, 0f)

ボール(1f, 0.6f, 1f) ウォール(1f, 0.6f, 0.5f)

何が変わるの?

4

1 に答える 1

0

うーん、永続的な弾むボールを作るには、体の BodyType.DynamicBody を 1 にして、重力を 0、EARTH (9.8f) に設定し、

scene.registerUpdateHandler(new IUpdateHandler() {


    @Override
    public void onUpdate(float pSecondsElapsed) {

            if(body.getPosition().y >=CAMERA_HEIGHT)
            {
                Vector2 v=new Vector2(0, -9f); //Adjust according to the bounce required
                body.setLinearVelocity(v);
            }

    }
});

二つ目:

密度は体積質量密度 () であり、重力加速度は質量とは無関係です...

弾力性は、オブジェクトがポイントで停止したときの慣性であるため、体をそれ以上動かしたくない場合は、0 に設定します。

摩擦は、物体の相対運動に抵抗する力の量です (媒体の空気、水など)。

そこで、2 つの固定点の間に跳ねるボールを作成するには、(密度 = 1、弾力性 = 0、摩擦 = 0) を設定してみてください。

于 2014-02-25T05:02:17.033 に答える