0

Physijs では、球が跳ね返る「バンパー」シリンダー メッシュを作成しました。次に、メッシュのクローンを作成し、クローン (およびこの例では元のメッシュ) を配置して、次のように「グラウンド」ボックスに追加しました。

    // CREATE AND CLONE A BUMPER
bumper = new Physijs.CylinderMesh
(
    new THREE.CylinderGeometry( 5, 5, 7, 20, 80, false ),
    ground_material,
    0 // mass 
);

var Bumper01 = bumper.clone();
var Bumper02 = bumper.clone();

// POSITION THE CLONES AND THE ORIGINAL BUMPER 
Bumper01.position.set( -2, 4, -50 );
Bumper02.position.set( 2, 4, -10 );
bumper.position.set( 0, 4, 30 );

// ADD THE CLONES AND THE ORIGINAL BUMPER TO THE GROUND CUBE
groundCube.add( bumper, Bumper01, Bumper02 );

scene.add( groundCube );

元のバンパーのみが機能し、球体はクローンを通過します。

作業例はこちら

私は何か間違ったことをしていますか?「クローン」は Physijs でこのように動作することを意図していませんか?

バグを発見しましたか?

とりあえず、必要なバンパーごとに新しい Phsyijs メッシュを作成します...

-マルクソ

4

1 に答える 1

0

私はあなたが話していることを知っていると思います。

内部clone()関数は、1 つでTHREE.Meshはなく、新しい を作成しますPhysijs。この問題を解決するには、単純に を に囲む複製関数を作成しTHREE.MeshますPhysijs.CylinderMesh

function cloneBumper(){
    var obj = new Physijs.CylinderMesh(bumper.clone().geometry, bumper.material, bumper.mass);
    return obj;
}

終わり!これで、バンパーが適切に複製されるはずです!

于 2015-02-25T22:56:01.447 に答える