0

私はこのライブラリを短期間使用していますが、私を殺してしまう問題があります。

私は2つの立方体を持っています.1つはphisy.jsで、もう1つはthree.jsで、カメラの回転に応じてA、S、D、またはWキーを押すとそれらを回転させる機能があります。これ:

    var v = new THREE.Vector3(0, 0, 0);
    if (keys.forward === 1)
        v.x = -1;
    if (keys.right === 1)
        v.z = 1;
    if (keys.backward === 1)
        v.x = 1;
    if (keys.left === 1)
        v.z = -1;

    //get the searched angle
    var angle = camera.rotation.y + Math.atan2(v.x, v.z);
    var rot = normalMesh.rotation.y;
    var diff = angle - rot;

    if (Math.abs(diff) > Math.PI) {
        //find the shortest way to rotate
        if (diff > 0)
            rot += 2 * Math.PI;
        else
            rot -= 2 * Math.PI;
        diff = angle - rot;
    }
    //get the /2 for a smooth rotation, i really need this
    if (diff !== 0)
        rot += diff / 2;
    normalMesh.rotation.set(0, rot, 0);

three.js キューブでは正常に動作しますが、physity.js キューブでは動作しません。

このためのデモを作成しました(Webワーカーのため、jsfiddleで作成できません)

http://demo.cristobaldiaz.cl/test/

また、ソース コードを zip ファイルに残しました ---> http://demo.cristobaldiaz.cl/test/issue.zip

http://demo.cristobaldiaz.cl/test/src/app.js行 95で移動関数を確認できます。

とにかくマウスでカメラを回転させると、立方体を赤いメッシュの方向に回転させると問題が発生することが確認できます。

4

1 に答える 1