Обнаружение столкновения прямоугольника и круга

Я пытаюсь сделать обнаружение столкновения между прямоугольником и кругом. Я придумал этот метод:

-(BOOL) isCollidingRect:(CCSprite *) spriteOne WithSphere:(CCSprite *) spriteTwo {
    float diff = ccpDistance(spriteOne.position, spriteTwo.position);
    float obj1Radii = [spriteOne boundingBox].size.width/2;
    float obj2Radii = [spriteTwo boundingBox].size.width/2;
    if (diff < obj1Radii + obj2Radii) {
        return YES;
    } else {
        return NO;
    }
}

и вот как я это проверяю:

if ([self isCollidingRect:player WithSphere:blocker] == true) {
   [self playerdeathstart];
}

Похоже, это работает правильно на стороне прямоугольника, но это не выше или ниже его. Сверху и снизу столкновение происходит слишком рано.

Есть ли способ, которым я могу правильно определить это столкновение? Спасибо за помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос