CGRectIntersectsRect frame + -10

时间:2014-04-17 10:01:28

标签: ios objective-c

我有一个问题。

我希望两个物体发生碰撞。这是我目前的代码:

if (CGRectIntersectsRect(_redBall.frame, _boxRed.frame)) {


    score = score + 10;
    _redBall.center = CGPointMake(240, 160);

    _scoreLabel.text = [NSString stringWithFormat:@"Score: %i", score];


}

我希望这两个对象(_redBall和_boxRed)发生碰撞,但它们会在(例如)第-10帧或其他值发生碰撞。这可能吗?

1 个答案:

答案 0 :(得分:1)

尝试使用UIEdgeInsetsInsetRect

CGRect original = CGRectMake(0, 0, 100, 100);
UIEdgeInsets adjustment = UIEdgeInsetsMake(-5, 10, 20, -30); // top, left, bottom, right
CGRect adjustedRect = UIEdgeInsetsInsetRect(original, adjustment);

// adjustedRect = {10, -5, 130, 80}

这样您就可以调整所有边缘,从而调整CGRect的位置。

正如有人提到的,还有CGRectOffset,但这只会移动矩形。如果要展开它,可以使用UIEdgeInsets

CGRectInsetUIEdgeInsets类似,但只会在同一轴上增大或扩展边缘,而不是单独增加。

我只提到所有三种方法,因为你对frame - 10有点模糊。以上所有内容都可以帮到你!