首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ThreeJS & PhysiJS不触发碰撞事件

ThreeJS & PhysiJS不触发碰撞事件
EN

Stack Overflow用户
提问于 2017-02-01 10:52:30
回答 1查看 408关注 0票数 0

我在使用PhysiJS和三个JS时遇到了问题,我无法处理冲突事件。

存储库: https://github.com/kevrmnd/soccer-physics (在script.js文件中)

我有一个地面和一个球,我把一个事件听者放在球上,当它落在地上时,应该提醒或记录一些东西,但是没有输出。

这里是我如何设置场景和重力:

代码语言:javascript
复制
scene = new Physijs.Scene({ fixedTimeStep: 1 / 120 });
scene.setGravity( new THREE.Vector3( 0, -30, 0 ) );

以下是我的立场:

代码语言:javascript
复制
    loader = new THREE.TextureLoader();

    // Materials
    ground_material = Physijs.createMaterial(
        new THREE.MeshStandardMaterial({ map: loader.load( 'img/grass.png' ) }),
        1,
        0.6
    );
    ground_material.map.wrapS = ground_material.map.wrapT = THREE.RepeatWrapping;
    ground_material.map.repeat.set( 4, 4 );

    // Ground
    ground = new Physijs.BoxMesh(
        new THREE.BoxGeometry( 30 , 1, 60 ),
        ground_material,
        0
    );
    ground.receiveShadow = true;
    scene.add( ground );

最后我的球:

代码语言:javascript
复制
    shape_material = Physijs.createMaterial(
        new THREE.MeshNormalMaterial(),
        0.5, // low friction
        0.8 // high restitution
    );

    shape = new Physijs.SphereMesh(
        new THREE.SphereGeometry( 0.5, 25, 25 ),
        shape_material,
        0.75
    );

    shape.addEventListener( 'collision', function(){
        alert( 'hey' );
    } );

    shape.position.z = 20;
    scene.add( shape );

我真的不明白为什么这不会触发一个事件。我需要你的帮助:-)

EN

回答 1

Stack Overflow用户

发布于 2017-02-02 09:18:20

好的,我在这里找到了解决方案:https://github.com/chandlerprall/Physijs/issues/248

只需修改physijs_worker.js文件中的两行!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41977874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档