Ios 如果使用CGPointEqualToPoint,则不起作用

Ios 如果使用CGPointEqualToPoint,则不起作用,ios,objective-c,cgpoint,Ios,Objective C,Cgpoint,我试图弄明白为什么这个函数不执行GameEnd函数,当球的位置和拦网的位置完全相同,当主播点相同时 if (CGPointEqualToPoint(ball.position,block.position)) { if (CGPointEqualToPoint(ball.anchorPoint,monster1.anchorPoint)) { [self theGameEnd]; } } CGPointEqualToPoint的

我试图弄明白为什么这个函数不执行GameEnd函数,当球的位置和拦网的位置完全相同,当主播点相同时

 if (CGPointEqualToPoint(ball.position,block.position)) {
        if (CGPointEqualToPoint(ball.anchorPoint,monster1.anchorPoint)) {
            [self theGameEnd];
        }
    }

CGPointEqualToPoint
的实现是

CG_INLINE bool __CGPointEqualToPoint(CGPoint point1, CGPoint point2)
{
    return point1.x == point2.x && point1.y == point2.y;
}
。。。所以坐标必须绝对相等才能返回真值

CGFloat
类型并不总是如此,即使像素似乎是对齐的。在动画或游戏模拟代码中计算它们的方式可能会导致微小错误


在比较之前,您可以尝试对这些值进行四舍五入,或者允许一点偏差。

您能告诉我您的要求吗