我正在制作一个带迷宫的应用程序,我在界面构建器的迷宫中放了一个球(我为它设置了一个插座)我有一个触摸移动:
-(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框架没有界限。那么为什么会这样呢?
答案 0 :(得分:8)
CGRectIntersectsRect
将返回true。因此,当你的球完全进入你的迷宫时,你的交叉测试将永远是真的。
答案 1 :(得分:-1)
如果你想检测你的球的矩形何时接触迷宫的矩形边缘(而不是迷宫中的任何地方),你需要测试除{{1}之外的!CGRectEqualToRect(CGRectIntersection(ball, maze), maze)
}}