我在检测Cocos2D中的碰撞时遇到问题,因为我用来查看对象是否碰撞的坐标总是错误的。
我有以下对象:
要检测碰撞,我只看一下2个精灵的边界框之间的距离:
inline BOOL collision(CGRect r1, CGRect r2)
{
CGPoint c1= RectCenter(r1);
CGPoint c2= RectCenter(r2);
BOOL result= (fabs(c1.x-c2.x)<MAX(r1.size.width/2.0,r2.size.width/2.0)) && (fabs(c1.y-c2.y)<MAX(r1.size.height/2.0,r2.size.height/2.0));
return result;
}
我使用boundingBox属性来获取每个sprite的坐标和大小。但坐标错误,并且没有正确检测到碰撞。
我很确定我做错了什么,有人能告诉我如何管理所有精灵以获得相同的坐标系?我也试过convertToWordSpace,但没有运气。
答案 0 :(得分:2)
您可以取消使用内置函数的碰撞方法,以查看两个CGRect是否相交:
CGRectIntersectsRect(r1, r2);