【问题标题】:Physijs update object massPhysijs 更新物体质量
【发布时间】:2015-02-25 22:58:22
【问题描述】:

我正在尝试使用包含多个对象的 three.js 环境,这些对象在单击时会改变质量。不幸的是,文档没有帮助,我也找不到任何最好的例子来做到这一点。

这是我在场景中添加随机数量的对象的部分。

    var random = getRandomArbitrary(4, 50);
    for (var i = 0; i <= random; i++) {
      var geometry = new THREE.IcosahedronGeometry( 5, 0 );

      var physijsMaterial = Physijs.createMaterial(
        new THREE.MeshLambertMaterial( { color: 0xffffff, emissive: 0x333333, shading: THREE.FlatShading } ),
        0, // high friction
        0 // medium restitution /bouciness
      );
      var smallSphere = new Physijs.SphereMesh(
        geometry,
        physijsMaterial,
        0
      );

      smallSphere.position.y = getRandomArbitrary(-50, 50);
      smallSphere.position.z = getRandomArbitrary(-50, 50);
      smallSphere.position.x = getRandomArbitrary(-50, 50);
      smallSphere.name = "Crystals";
      scene.add(smallSphere); 
    }

这是我试图更新物体质量的部分。

function generateGravity(event)
  {
    event.preventDefault();

    var vector = new THREE.Vector3();
    vector.set( ( event.clientX / window.innerWidth ) * 2 - 1, - ( event.clientY / window.innerHeight ) * 2 + 1, 0.5 );
    vector.unproject( camera );

    raycaster.ray.set( camera.position, vector.sub( camera.position ).normalize() );

    var intersects = raycaster.intersectObjects( scene.children, true );

    console.log(intersects);

    // intersects.object

    length = intersects.length;
    for (var x = 0; x < length; x++) {
      if (intersects[x].object.name == "Crystals") {
        console.log(intersects[x].object.mass);
        intersects[x].object._physijs.mass = 50;
        // intersects[x].object.remove();
      }
    }
  }

我很想知道在事件期间更新物体质量的最佳方法。现在这个函数 generateGravity 正在“render”方法中被调用。

【问题讨论】:

    标签: javascript three.js physijs


    【解决方案1】:

    我意识到这是因为我在 render() 之后放置了 scene.simulate()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多