javascript - 简单碰撞检测三.js

标签 javascript three.js

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

这是我的游戏的图片。随机 block 沿着棋盘向下移动,桨必须避开它

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

paddle = new THREE.Mesh(

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

                paddleMaterial);

我之前尝试过使用光线转换解决方案,但似乎从来没有奏效

enter image description here

最佳答案

嘿,只是一些注意事项。您应该开始使用浏览器控制台来检查是否有一些错误消息。如果您使用 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;
        }
    } 
}   

如果您有任何疑问,请告诉我。

关于javascript - 简单碰撞检测三.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26000272/

相关文章:

javascript - 如何让三个JS中的TextGeometry跟随鼠标?

opengl-es - 如何像GL_REPEAT一样重复纹理贴图?

javascript - 如何过滤包含对象数组本身的对象数组?

javascript - 哪种预加载器是首选 - 基于图像、CSS 还是 JavaScript?

javascript - 在 Photoshop cc 20.0.0 中通过批量智能对象中的脚本替换内容(替换图层)

javascript - THREE.js 模型位置问题

javascript - JS : Adding a space between Japanese character phrase and number using regex

javascript - 如何禁用 FuckAdBlock

javascript - 如何使用 ThreeJs 创建一个每边由 600 000 000 个迷你立方体组成的立方体?

javascript - 你如何 "combine"一个ShaderMaterial和LambertMaterial?