У меня проблемы с этим методом. У меня есть два прямоугольника, которые явно содержатся друг в друге (я даже нарисовал их координаты вручную, чтобы убедиться в этом). Когда я использую CGRectContainsRect для сравнения этих двух прямоугольников, он возвращает false. За свою жизнь я все перепробовал, облазил сеть, и не могу найти ответ на эту проблему. Кто-нибудь знает, почему? Я включил значения для CGRects при отладке, чтобы показать, что они определенно находятся друг в друге.
-(bool)checkBoundingBox {
bool returnItem = YES;
//Checks for sprite interaction
for (int i = 0; i < [arrGameItems count]; i++) {
CGRect rect2 = [[self getChildByTag:1] boundingBox];
CGRect rect1 = [[self getChildByTag:3] boundingBox];
// rect1 = CGRectStandardize(rect1);
// rect2 = CGRectStandardize(rect2);
if (CGRectContainsRect(rect2, rect1)) {
CCLOG(@"removed child b*&ch");
[self removeChildByTag:[arrGameItems count] cleanup:YES];
returnItem = NO;
}
}
CCLOG(@"g-dammit");
return returnItem;
}
rect1 начало x = 141 y = 76, высота = 25, ширина = 25
начало координат rect2 x = 127 y = 91, высота = 25, ширина = 25