有没有办法实现简单的碰撞检测,最好使用光线转换
这是我的游戏的图片。随机 block 沿着棋盘向下移动,桨必须避开它
我的所有对象都是使用以下代码创建的:
paddle = new THREE.Mesh(
new THREE.CubeGeometry(
paddleWidth,
paddleHeight,
paddleDepth,
paddleQuality,
paddleQuality,
paddleQuality),
paddleMaterial);
我之前尝试过使用光线转换解决方案,但似乎从来没有奏效
最佳答案
嘿,只是一些注意事项。您应该开始使用浏览器控制台来检查是否有一些错误消息。如果您使用 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/