我在使用PhysiJS和三个JS时遇到了问题,我无法处理冲突事件。
存储库: https://github.com/kevrmnd/soccer-physics (在script.js文件中)
我有一个地面和一个球,我把一个事件听者放在球上,当它落在地上时,应该提醒或记录一些东西,但是没有输出。
这里是我如何设置场景和重力:
scene = new Physijs.Scene({ fixedTimeStep: 1 / 120 });
scene.setGravity( new THREE.Vector3( 0, -30, 0 ) );以下是我的立场:
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 );最后我的球:
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 );我真的不明白为什么这不会触发一个事件。我需要你的帮助:-)
发布于 2017-02-02 09:18:20
好的,我在这里找到了解决方案:https://github.com/chandlerprall/Physijs/issues/248
只需修改physijs_worker.js文件中的两行!
https://stackoverflow.com/questions/41977874
复制相似问题