假设两个 sprite, 每个的图片是缩放的, 而sprite 的上层节点也设置了缩放比例。 这个该怎么方便的进行碰撞检测?
取得屏幕的绝对坐标,和缩放后在屏幕上的size。 取得屏幕的绝对坐标好弄, 后面的计算size有些麻烦(因为有缩放系数),求教大家是怎么办的 ? 答案1: 其实缩放不缩放是一样的啊,如果粗略一些就计算这2个sprite的中心点距离,如果大于等于二者高度或者宽度之和的一半,则为已碰撞,如果想精确些那么要计算每个sprite的轮廓上每个角的坐标来比较! 答案2: contentsize 是实际的大小。
或者采取画矩形相交判断,
圆形半径判断。 答案3: CGRect projectileRect = CGRectMake(projectile.position.x , projectile.position.y , projectile.contentSize.width , projectile.contentSize.height );
CGRect targetRect = CGRectMake(target.position.x , target.position.y , target.contentSize.width, target.contentSize.height);
if (CGRectIntersectsRect(projectileRect, targetRect)) {
碰撞了.
}
第一个代表rect是a物体在屏幕上占的空间.第二个rect是b物体占的空间.两个空间相交则表示碰撞了.