我正在为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,为什么我要这么做?
最佳答案
正如你所说,它总是零,你不需要它也许其他一些价值观本该存在,但却被遗忘了所以把它拿出来清除你的代码。