Mam problemy z tą metodą. Mam dwa prostokąty, które są oczywiście zawarte w sobie nawzajem. (Nawet ręcznie wykreślałem ich współrzędne, aby się upewnić.) Kiedy używam CGRectContainsRect do porównania tych dwóch prostokątów, zwracana jest wartość false. Dla mojego życia próbowałem wszystkiego, przeszukiwałem sieć i nie mogę znaleźć odpowiedzi na ten problem. Ktoś ma jakiś pomysł, dlaczego? Dołączyłem wartości CGRects podczas debugowania, aby pokazać, że są one zdecydowanie w sobie.CGRectContainsRect Nie działa
-(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 pochodzenia X = 141 Y = 76, wysokość = 25, szerokość = 25
rect2 pochodzenia X = 127 Y = 91, wysokość = 25, szerokość = 25
Dziękuję. Tak było. Próbowałem tego w przeszłości, ale wtedy nie działało. Z drugiej strony poprawiłem kilka błędów logicznych od tego czasu. – drucifer
@itia Ferber dzięki za zredagowanie mojej odpowiedzi .. Byłem na telefonie, dlatego wiele błędów – Shubhank
@Shubhank Bez obaw. Chętnie pomoże. –