-2

我正在制作一个 Java 3D 游戏,其中你是一个在其他球上跳跃的球。除了玩家球和敌人球之间的碰撞之外,我已经弄清楚了一切。我发现我可以检查球体中心之间的距离是否小于它们的半径之和,但问题是我不知道该怎么做;如果有人知道我如何检查球半径的总和,我将非常感谢你告诉我。

4

2 回答 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 回答