我正試圖在矩形和圓形之間進行碰撞檢測。我想出了這個方法:矩形和圓形碰撞檢測
-(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];
}
這似乎在矩形的一側正常工作,但它不高於或低於它。在頂部和底部,碰撞發生得太早。
有沒有方法可以讓我得到這個碰撞到正確檢測?感謝您的幫助。
順便說一句,如果你正在返回一個'BOOL',請使用'YES'和'NO'。你也可以返回比較結果並避免if/else。 –
謝謝!我在我的問題中更新了這個。 –
如果你做'return(diff