CGRectIntersectsRect

时间:2011-07-14 18:22:05

标签: objective-c xcode

  

可能重复:
  CGRectIntersectsRect Problem

我正在制作一个带迷宫的应用程序,我在界面构建器的迷宫中放了一个球(我为它设置了一个插座)我有一个触摸移动:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint point;
    point = [touch locationInView:self.view];

    ball.center = point;

    if (CGRectIntersectsRect(ball.frame, maze.frame)) {
       //my stuff
    }
}

我有两个CGRectIntersectsRect if语句,我说,如果球的框架接触到迷宫的框架,那么//我的东西发生了,但出于某种原因,每当我试图移动球时,不触及迷宫的框架, //我的东西发生了我不知道为什么,也许是因为球在迷宫中,可能不是因为我说如果cgrectintersectsrect框架没有界限。那么为什么会这样呢?

2 个答案:

答案 0 :(得分:8)

如果rect1的任何部分位于rect2内,

CGRectIntersectsRect将返回true。因此,当你的球完全进入你的迷宫时,你的交叉测试将永远是真的。

答案 1 :(得分:-1)

如果你想检测你的球的矩形何时接触迷宫的矩形边缘(而不是迷宫中的任何地方),你需要测试除{{1}之外的!CGRectEqualToRect(CGRectIntersection(ball, maze), maze) }}