Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c cGRECT_Objective C_Xcode - Fatal编程技术网

Objective c cGRECT

Objective c cGRECT,objective-c,xcode,Objective C,Xcode,可能重复: 我正在制作一个带有迷宫的应用程序,我在interface builder中的迷宫中放置了一个球我为它放置了一个插座我有一个触摸移动: -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [[event allTouches] anyObject]; CGPoint point; point = [touch locationInView:self

可能重复:

我正在制作一个带有迷宫的应用程序,我在interface builder中的迷宫中放置了一个球我为它放置了一个插座我有一个触摸移动:

-(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语句,我说,如果球的框架碰到迷宫的框架,那么//我的东西发生了,但是出于某种原因,每当我试图移动球,而不碰到迷宫的框架时,//我的东西发生了。我不知道为什么,可能是因为球在迷宫里,可能不是因为我说如果CGRECT相交,请不要限制帧。那么为什么会发生这种情况呢?

如果rect1的任何部分位于rect2内部,CGRectIntersectsRect将返回true。因此,当你的球完全在迷宫中时,你的交叉测试将始终为真。

CGRectIntersectsRect将返回真,如果rect1的任何部分位于rect2内。因此,当你的球完全在迷宫中时,你的交叉测试总是正确的。

如果你想检测球的直线何时接触到迷宫直线的边缘,而不是迷宫中的任何地方,你需要测试!cGRECTQUOTERCTcGRECTINTERSECTIONBALL,maze,maze除了cGRECTINTERSECTBALL,maze之外。

如果您想检测球的矩形何时接触到迷宫矩形的边缘,而不是迷宫中的任何地方,您需要测试!CGRECTEQUALTORECTCGRECTEXTERSECTIONBALL,maze,maze除了CGRECTEXTERSECTBALL,maze之外。

可能的dup:请不要重复发布问题。如果你没有得到答案,你可以将问题编辑得更清楚,以保持问题的新鲜感。该网站还将弹出未回答的问题供人们查看。可能的dup:请不要重复发布问题。如果你没有得到答案,你可以将问题编辑得更清楚,以保持问题的新鲜感。这个网站也会冒出一些未回答的问题供人们查看。哦,好吧,那么,我没有意识到,我怎么才能解决这个问题呢?我不知道你到底想做什么,cgrectintersectsrect将返回为Yes迷宫在哪里?这是整个景观吗?墙在哪里?要查看球的框架是否完全位于迷宫的框架内,请使用CGRectContainesRectMaze.frame、ball.frame,并在图像中绘制墙。你将很难检测到与画成那样的墙的碰撞。哦,好吧,那么,我没有意识到,我如何解决这个问题,那么我不知道你到底想实现什么。我试图做到这一点,当我在迷宫中时,我//我的东西不会发生,因为现在正如你所说,因为我从里面开始,cgrectintersectsrect将返回为Yes迷宫在哪里?这是整个景观吗?墙在哪里?要查看球的框架是否完全位于迷宫的框架内,请使用CGRectContainesRectMaze.frame、ball.frame,并在图像中绘制墙。你将很难检测到与那样画的墙的碰撞。这段代码只会导致大量错误扫描。请详细说明@user842059?你看到了什么错误?这段代码只会导致大量错误扫描请详细说明@user842059?你看到了什么错误?