检测框架底部的碰撞

时间:2013-12-31 19:47:14

标签: ios cocoa-touch

当我触及connect1 UIimageview

时,我想出去探测球的底部碰撞。
if (CGRectIntersectsRect(ball.frame, box.frame)) 
{
    yesno.text=@"Found the spot";
}

**这显然会检测到框架的任何部分。

如果有人能指出我正确的方向,我会非常感激。

1 个答案:

答案 0 :(得分:1)

不要看球的框架和框架的交叉点,而是寻找球的框架与顶部与框底部对齐的矩形的交叉点。

CGRect bottom = CGRectMake(box.frame.x, box.frame.y + box.frame.height, box.frame.width, 50.0);
if (CGRectIntersectsRect(ball.frame, bottom)) 
{
    yesno.text=@"Found the spot";
}

或者,假设球通常位于禁区内,那么简单地检查球相对于禁区的位置可能会更快:

CGFloat ballBottom = ball.frame.y + ball.frame.height;
CGFloat boxBottom = box.frame.y + box.frame.height;
if (ballBottom > boxBottom) {
    yesno.text=@"Found the spot";
}