【发布时间】:2013-06-09 11:02:42
【问题描述】:
我使用以下代码检查玩家的点是否在圆形区域中:
if ([circle.presentationLayer hitTest:player.position])
{
NSLog(@"hit");
}
我的圈子是一个 CAShapeLayer:
CAShapeLayer *circle = [CAShapeLayer layer];
CGFloat radius = 50;
[circle setMasksToBounds:YES];
[circle setBackgroundColor:[UIColor redColor].CGColor];
[circle setCornerRadius:radius1];
[circle setBounds:CGRectMake(0.0f, 0.0f, radius *2, radius *2)];
[self.view.layer addSublayer:circle];
这样的碰撞检测效果很好。
现在我不想使用圆形图层来测试玩家的位置,而是使用沿自定义路径绘制的 CAShapeLayer:
CAShapeLayer *customLayer = [CAShapeLayer layer];
customLayer.path = customPath.CGPath;
customLayer.fillColor = [UIColor yellowColor].CGColor;
customLayer.shouldRasterize = YES;
customLayer.opacity = 0.2;
[self.view.layer addSublayer: customLayer];
当我想用自定义层对玩家的位置进行命中测试时,命中测试不再起作用。
我该如何解决这个问题?
【问题讨论】:
标签: ios path collision-detection hittest cashapelayer