我正在制作一个 Java 3D 游戏,其中你是一个在其他球上跳跃的球。除了玩家球和敌人球之间的碰撞之外,我已经弄清楚了一切。我发现我可以检查球体中心之间的距离是否小于它们的半径之和,但问题是我不知道该怎么做;如果有人知道我如何检查球半径的总和,我将非常感谢你告诉我。
问问题
304 次
2 回答
0
假设您有一个包含有关它们的信息的球体的容器类:
private class Sphere{
public float x;
public float y;
public float z;
public float radius;
}
现在您必须对 3D 空间使用勾股定理来计算两个球体中心之间的距离:
public boolean areColiding(Sphere s1, Sphere s2){
float dist = (float) Math.sqrt((s1.x - s2.x) * (s1.x - s2.x) +
(s1.y - s2.y) * (s1.y - s2.y) +
(s1.z - s2.z) * (s1.z - s2.z));
if(dist <= s1.radius + s2.radius)
return true;
else
return false;
}
于 2013-04-11T14:04:31.503 回答
0
见http://mathworld.wolfram.com/Sphere-SphereIntersection.html
在https://gamedev.stackexchange.com/questions/16976/sphere-collision-response#16978上查看 Will 的回答
于 2013-04-10T13:28:31.303 回答