简单的碰撞检测three.js

时间:2014-09-23 16:35:46

标签: javascript three.js

有没有办法实现简单的碰撞检测,最好使用光线投射

这是我游戏的照片。 randomblock向下移动板,桨必须避开它

我的所有对象都是使用以下代码创建的:

paddle = new THREE.Mesh(

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

                paddleMaterial);

我之前尝试过使用光线投射解决方案,但它似乎无法正常工作

enter image description here

1 个答案:

答案 0 :(得分:1)

嘿,只是几个笔记。您应该开始使用浏览器控制台检查是否有一些错误信息。如果你使用firefox或chrome点击CTRL + Shift + J然后点击控制台。 CubeGeometry已更改为BoxGeometry。我也改变了你的控制。 J和K现在来回滑动。这是通过工作碰撞检测实现新Codepen的链接。

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

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

如果您有任何问题,请与我们联系。