我有一个问题。
我希望两个物体发生碰撞。这是我目前的代码:
if (CGRectIntersectsRect(_redBall.frame, _boxRed.frame)) {
score = score + 10;
_redBall.center = CGPointMake(240, 160);
_scoreLabel.text = [NSString stringWithFormat:@"Score: %i", score];
}
我希望这两个对象(_redBall和_boxRed)发生碰撞,但它们会在(例如)第-10帧或其他值发生碰撞。这可能吗?
答案 0 :(得分:1)
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
。
还CGRectInset
与UIEdgeInsets
类似,但只会在同一轴上增大或扩展边缘,而不是单独增加。
我只提到所有三种方法,因为你对frame - 10
有点模糊。以上所有内容都可以帮到你!