我正在为Android开发一款类似小行星的游戏。我正在读“android游戏编程实例”。我正在实现交叉数算法。应用程序已完成并运行,但我不理解代码的这一部分:

if (((cp2.currentPoint.y > cp1.currentPoint.y) !=
    (cp2.currentPoint2.y > cp1.currentPoint.y)) &&
    (cp1.currentPoint.x < (cp2.currentPoint2.x - cp2.currentPoint2.x) *
    (cp1.currentPoint.y - cp2.currentPoint.y) / (cp2.currentPoint2.y - cp2.currentPoint.y) + cp2.currentPoint.x))

其中,cp1.currentPoint是第一个对象的第一个顶点(因此它是一个点),cp2.currentPoint是第二个对象的第一个顶点,cp2.currentPoint2是第二个点。这两点构成了我们的界线。
这部分我不明白:
(cp2.currentPoint2.x - cp2.currentPoint2.x)

结果总是0,为什么我要这么做?

最佳答案

正如你所说,它总是零,你不需要它也许其他一些价值观本该存在,但却被遗忘了所以把它拿出来清除你的代码。

08-17 16:33