有没有办法实现简单的碰撞检测,最好使用光线投射
这是我游戏的照片。 randomblock向下移动板,桨必须避开它
我的所有对象都是使用以下代码创建的:
paddle = new THREE.Mesh(
new THREE.CubeGeometry(
paddleWidth,
paddleHeight,
paddleDepth,
paddleQuality,
paddleQuality,
paddleQuality),
paddleMaterial);
我之前尝试过使用光线投射解决方案,但它似乎无法正常工作
答案 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;
}
}
}
如果您有任何问题,请与我们联系。