【发布时间】:2016-10-14 19:22:15
【问题描述】:
我正在尝试为台球游戏实现循环碰撞。我试图让球在碰撞时以正确的方式弹开。我已经尝试了几个教程并阅读了有关 stackoverflow 的多个问题,但没有一个真正帮助我。
我的问题:我如何实现在这两种情况下有效的圆到圆碰撞: 1:一个运动的球与一个不动的球相撞。 2:一个移动的球与一个移动的球碰撞
我尝试过的教程之一:
这是我目前拥有的代码,它在某种程度上可以工作,但非常有问题:
function newCollide(ball1, ball2)
{
a = ball1.position.x - ball2.position.x;
b = ball1.position.z - ball2.position.z;
ab = Math.sqrt(((a * a) + (b * b)));
if(ab <= 1.1)
{
console.log("collision");
ball2.speedX = ball1.speedX;
ball2.speedZ = ball1.speedZ;
ball1.speedX *= 0.3;
ball1.speedZ *= 0.3;
ball1.position.x += ball1.speedX;
ball1.position.z += ball1.speedZ;
ball2.position.x += ball2.speedX;
ball2.position.z += ball2.speedZ;
}
}
感谢任何帮助。
【问题讨论】:
标签: javascript three.js physics