【问题标题】:CGRectIntersectsRect ProblemCGRectIntersectsRect 问题
【发布时间】:2011-07-14 16:08:03
【问题描述】:

我正在制作一个带有迷宫的应用程序,我在界面构建器中的迷宫内放了一个球(我为它放置了一个出口)我有一个 touchesMoved:

 -(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 frame not bounds。那为什么会这样呢?

我有另一个名为 flag 的 uiimageview iboutlet,我有相同的 cgrectintersectsrect 类型的代码,它在相同的 touchesMoved 中工作,为什么这不起作用

【问题讨论】:

标签: objective-c xcode cgrect


【解决方案1】:

试试这个

UITouch *touch = [[event allTouches] anyObject];

CGPoint point;

point = [touch locationInView:self.view];


point = [[CCDirector sharedDirector] convertToGL: point];


if (CGRectIntersectsRect(ball.bounds, maze.bounds)) {


//frame - x,y,w,h

//bounds- w,h

【讨论】:

  • 我收到错误消息:使用未声明的标识符//所有字母、框架和边界,x,y,w,h 和 w,h 是什么?
  • 什么意思?所以你是说我应该将框架更改为边界?
  • 你的意思是 cidirector 不是 ccdirector 对,如果我使用 ccdirector,我会收到一个错误,因为它不是什么,但是如果我将它更改为 cidirector,那么我会收到 3 个错误说:不知道类选择器 sharedDirector 的方法,从不兼容的类型 id 分配给 cgpoint,没有已知的选择器 convertToGL 的实例方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多