2017-02-01 2 views
0

J'ai un problème en utilisant PhysiJS et Three JS, je ne peux pas gérer les événements de collision.ThreeJS & PhysiJS ne déclenche pas l'événement de collision

dépôt sur Github:https://github.com/kevrmnd/soccer-physics (dans le fichier script.js)

J'ai un terrain et une balle, je mets un EventListener sur la balle qui devrait alerter ou se connecter quelque chose quand il tombe sur le sol, mais il n'y a pas de sortie.

Voici comment je mis en scène et de la gravité:

scene = new Physijs.Scene({ fixedTimeStep: 1/120 }); 
scene.setGravity(new THREE.Vector3(0, -30, 0)); 

Voici mon terrain:

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); 

Et enfin ma balle:

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); 

Je ne comprends vraiment pas pourquoi cela ne déclenche pas un événement. J'ai besoin de votre aide :-)

Répondre