我正在制作一种“空气曲棍球”类型的游戏,我需要检测手柄和冰球的碰撞。我正在使用CGRectIntersectRect函数,但它不准确,因为当边缘的帧碰撞时,当圆盘和手柄的圆圈尚未碰撞时检测到碰撞。
我希望我明确表达自己的观点,那么,如何能够更准确地实现两个圆形图像的碰撞?
答案 0 :(得分:0)
我会给UIKit Dynamics碰撞检测引擎一个镜头。请参见示例here。
不幸的是它是iOS 7+,所以如果你计划支持iOS 6,你需要寻找另一种解决方案。
答案 1 :(得分:0)
从@ H2CO3获取提示,我实现了我自己的一个函数,它取圆圈1的中心(x1,y1)和圆心2的中心(x2,y2)和两个圆的半径之和(r)为参数。
计算(x1,y1)和(x2,y2)之间的距离,如果距离(例如d)小于r,则圆圈相交。
看一下实现,完美运行:
-(BOOL)WhenCircleDistanceIsLessThanRadiusX1:(int)x1 Y1:(int)y1 X2:(int)x2 Y2:(int)y2 R:(int)r
{
int d = (int) sqrt(pow((x2-x1),2) + pow((y2-y1),2));
return(d<=r);
}