2014-09-23 4 views
0

간단한 충돌 감지를 구현하는 방법이 있습니까? 가급적 레이 캐스팅을 사용하십시오.간단한 충돌 감지 three.js

다음은 내 게임 사진입니다. randomblock 보드를 아래로 이동하고 패들는이 코드를 사용하여 그것을

내 모든 객체를 생성하지 않도록해야한다 :

필자가 전에 raycasting 솔루션을 사용하여 시도하지만 결코 일 것 같다

paddle = new THREE.Mesh(

     new THREE.CubeGeometry(
       paddleWidth, 
       paddleHeight, 
       paddleDepth, 
       paddleQuality, 
       paddleQuality, 
       paddleQuality),         

       paddleMaterial); 

enter image description here

+0

JSFiddle을 설정하면 레이캐스팅을 구현할 수 있는지 확인합니다. – Kahless

+0

당신이이 문제를 아직 경험하지 못했는지 모르겠지만, 여기에 당신이 원하는 것을 보여주는 좋은 예가 있습니다 .http : //stemkoski.github.io/Three.js/Collision-Detection.html – Kahless

+0

이 방법으로 시도했습니다. ,하지만 작동하지 않는 것 및 문제가 무엇인지 모르겠다. 비록 내가 아직 JSFiddle 사용 havent – TeaAnyOne

답변

1

어쨌든 몇 가지 메모가 있습니다. 브라우저 콘솔을 사용하여 몇 가지 오류 메시지가 있는지 확인해야합니다. 파이어 폭스 나 크롬을 사용하는 경우 Ctrl + Shift + J를 누른 다음 콘솔을 클릭하십시오. CubeGeometry가 BoxGeometry로 변경되었습니다. 또한 컨트롤을 약간 변경했습니다. J와 K는 이제 물건을 앞뒤로 밀어냅니다. 다음은 작동 충돌 감지 기능이있는 새로운 Codepen에 대한 링크입니다.

function collision() { 
    var originPoint = paddle.position.clone(); 
    for (var vertexIndex = 0; vertexIndex < paddle.geometry.vertices.length; vertexIndex++) { 
     var ray = new THREE.Raycaster(paddle.position, paddle.geometry.vertices[vertexIndex]); 
     var collisionResults = ray.intersectObjects(collidableMeshList); 
     if (collisionResults.length > 0) { 
      hit = true; 
     } 
    } 
} 

http://codepen.io/anon/pen/GHofz?editors=001

당신이 어떤 질문이 있으면 알려주세요.

+0

와우, 고마워. 오. 당신은 많은 두통을 저장했습니다 :) – TeaAnyOne