设置SKSpriteNode的可触摸区域

有没有SKSpriteNode的属性,让你手动设置其可触摸区域?

我有一个PNG纹理的精灵,它似乎只是检测PNG的不透明部分触摸。 所以一个大的空白canvas里面的一个小圆圈实际上有一个很小的可触摸区域。

创build一个您想要的可触摸区域大小的SKNode。 添加纹理精灵作为新的SKNode的子节点。 检查是否触摸了新的SKNode,而不是触摸纹理的Sprite。

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint location = [touch locationInNode:self]; SKNode *node = [self nodeAtPoint:location]; if ([node.name isEqualToString:@"childName"]) { NSLog(@"You touched to child of sprite"); } } -(void)sprite { SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"spriteImageName"]; [self addChild:sprite]; SKSpriteNode *spriteChild = [SKSpriteNode spriteNodeWithImageNamed:@"childImageName"]; spriteChild.name = @"childName"; [sprite addChild:spriteChild]; }