Tôi đang gặp sự cố với phương pháp này. Tôi có hai hình chữ nhật rõ ràng là nằm trong nhau (Tôi thậm chí đã vẽ đồ thị tọa độ của họ theo cách thủ công để chắc chắn.) Khi tôi sử dụng CGRectContainsRect để so sánh hai hình chữ nhật này, nó trả về false. Đối với cuộc sống của tôi, tôi đã thử tất cả mọi thứ, quét lưới, và tôi không thể tìm thấy câu trả lời cho vấn đề này. Bất cứ ai có bất kỳ ý tưởng tại sao? Tôi đã bao gồm các giá trị cho CGRects khi tôi gỡ lỗi để cho thấy rằng chúng chắc chắn nằm trong nhau.CGRectContainsRect Not Working
-(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 gốc x = 141 y = 76, height = 25, width = 25
rect2 gốc x = 127 y = 91, height = 25, width = 25
Cảm ơn bạn. Điều đó đã làm điều đó. Tôi đã thử điều đó trong quá khứ, nhưng nó không hoạt động sau đó. Sau đó, một lần nữa, tôi đã sửa chữa một số lỗi logic kể từ đó. – drucifer
@itia Ferber cảm ơn vì đã chỉnh sửa câu trả lời của tôi .. Tôi đã ở trên điện thoại của mình đó là lý do tại sao rất nhiều lỗi – Shubhank
@Shubhank Đừng lo lắng. Vui vẻ giúp đỡ. –